Sempre que você tiver esse tipo de problema, set -x
é seu amigo. Altere seu script para isso e execute-o novamente:
#!/bin/bash
set -x
/usr/bin/mount -v --bind "\""$1"\"" "\""$2"\""
echo $?
exit 0
Isso mostrará a seguinte saída:
terdon@tpad ~ $ sudo foo.sh "/storage/Some folder" "/storage/temp"
+ /usr/bin/mount -v --bind '"/storage/Some' 'folder"' '"/storage/temp"'
mount: bad usage
Try 'mount --help' for more information.
+ echo 1
1
+ exit 0
Como você pode ver, o que realmente está sendo executado é:
/usr/bin/mount -v --bind '"/storage/Some' 'folder"' '"/storage/temp"'
Isso acontece porque você tem "\""$1"\""
, então, em vez de $1
, o que está sendo passado para mount
é "$1"
, com as aspas incluídas como se fossem parte do nome do diretório . O que você quer fazer é:
#!/bin/bash
set -x
/usr/bin/mount -v --bind "$1" "$2"
echo $?
exit 0