次のような「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)