Я пытаюсь написать скрипт bash, который подсчитывает все файлы в данном каталоге и подкаталогах, поэтому я написал это:
#!/bin/bash
var=0
if ["$#" == "0"]
directory="$(echo pwd)"
then
directory=$1
fi
echo $directory;
for x in `ls -l $directory | grep "^-" | tr -s ' ' | cut -d ' ' -f 9`;
do
var=$((var+1))
done
for x in `ls -l $directory | grep "^d" | tr -s ' ' | cut -d ' ' -f 9`;
do
output = "$($0 $x)"
done
var=$((var+output))
echo $var
Но я получаю что-то вроде этого:
./lala2
./lala2: line 4: [0: command not found
test
./lala2: line 4: [1: command not found
./lala2: line 4: [1: command not found
Это почему? Являются ли переменные глобальными?