失敗したメモリを非常に小さなシェル スクリプトに置き換えたいと考えています。
#!/bin/sh
if ! [ –a $1.sav ]; then
mv $1 $1.sav
cp $1.sav $1
fi
nano $1
スクリプトの元のバージョンを保存するためのものです。オリジナルが以前に保存されていた場合、move-and-copy-back をスキップします (私は move-and-copy-back を使用して元のタイムスタンプを保存しています)。
chmodで実行可能にした後、編集中のディレクトリ内から起動すると、これは意図したとおりに機能します。
./safe.sh filename
ただし、移動して/usr/bin
から別のディレクトリで実行しようとすると (先頭の なし./
)、次のように失敗します。
*-bash: /usr/bin/safe.sh: /bin/sh: bad interpreter: Text file busy*
私の質問は、このスクリプトをパス (によって検証echo $PATH
) に移動すると、なぜ失敗するのでしょうか?
ああ?探究心は、これを機能させる方法を知りたがっています。