回答:
使用する
"$filepath"_newstap.sh
または
${filepath}_newstap.sh
または
$filepath\_newstap.sh
_識別子の有効な文字です。ドットはそうではないので、シェルは補間しようとしました$filepath_newstap。
を使用set -uして、未定義の変数を参照するときに、シェルをエラーで終了させることができます。
${}と二重引用符の違いは何ですか?どちらを優先するべきですか?
変数名を中括弧で囲みます。
`tail -1 ${filepath}_newstap.sh`
$filepath_newstap.shとして解釈されていることを示唆しました。${filepath_newstap}.sh${filepath}_newstap.sh
"$filepath"_fooと${filepath}_fooの両方に拡大します/tmp/name_foo。しかし、'$filepath'_foo、"$"filepath_foo、および$"filepath"_fooすべての完全展開を避けるだろう。これが、環境変数に(パラメーター展開の対象となる)export PATH=$PATH:$addpath追加するように機能する理由です。:$addpathPATH
set -u、未定義の変数を参照した場合にスクリプトが異常終了する原因についても触れているかもしれません。