O script está procurando por um argumento posicional. Então você precisa executar o comando assim:
jtoscarson:~/Downloads$ bash test.sh ./
./ is a directory and it is writable
Passando pelo tutorial no linuxcommand.org. Todos os scripts que escrevo, até mesmo copiar e colar, não serão executados. Aqui está o que eu fiz:
gedit test_script.html
no gedit:
#!/bin/bash
for filename in "$@"; do
result=
if [ -f "$filename" ]; then
result="$filename is a regular file"
else
if [ -d "$filename" ]; then
result="$filename is a directory"
fi
fi
if [ -w "$filename" ]; then
result="$result and it is writable"
else
result="$result and it is not writable"
fi
echo "$result"
done
Então eu vou para a linha de comando: chmod 777 test_script.html
Então eu executo: ./test_script.html
e não faz nada? Ele não envia um erro, apenas vai para o próximo prompt de comando?
Tenho certeza de que estou fazendo algo estúpido?
O script está procurando por um argumento posicional. Então você precisa executar o comando assim:
jtoscarson:~/Downloads$ bash test.sh ./
./ is a directory and it is writable