次のような「teleport.sh」という名前のシェルスクリプトがあります。
if [ $1="1" ];
then
shift
mv "$@" ~/lab/Sun
elif [ $1="2" ];
then
shift
mv "$@" ~/lab/Moon
elif [ $1="3" ];
then
shift
mv "$@" ~/lab/Earth
fi
私が実行すると:
sh teleport.sh 2 testfile
これtestfileは~/lab/Sunディレクトリに移動されますが、そのスクリプトに1または '1'を渡さなかったため、非常に混乱しています。
ここで何が問題になっていますか?
$(cmd)あるコマンド置換(主に)、と同じ`cmd`。mywiki.wooledge.org/CommandSubstitutionおよびmywiki.wooledge.org/BashFAQ/082を
$var$(cmd)`cmd`$(cmd)