- Since we used the $1 variable not $@, the function will return the first element only.
- 50. Yes, it's a global variable, but because we printed the value before the function call, the variable isn't affected.
- Missing brackets () or adding the keyword function before the function name. It should be written like this:
clean_file() {
is_file "$1"
BEFORE=$(wc -l "$1")
echo "The file $1 starts with $BEFORE"
sed -i.bak '/^\s*#/d;/^$/d' "$1"
AFTER=$(wc -l "$1")
echo "The file $1 is now $AFTER"
}
- The problem is in the function call. We shouldn't use brackets () during a function call. Brackets should only be used in function definitions. The correct code will be like this:
#!/bin/bash
myfunc() {
arr=$@
echo "The array from inside the function: ${arr...