1. ホーム
  2. スクリプト・コラム
  3. リナックスシェル

シェル文字列インターセプトエラー。不正な置換ソリューション

2022-02-08 01:54:41

問題が再現されました。

現在のシステム Ubuntu16

文字列傍受用シェル

GIT_COMMIT:0:6} を実行すると、エラーが報告されます。

/tmp/jenkins7505855461406722507.sh: 4: /tmp/jenkins7505855461406722507.sh: 不正な置換

原因 2つのシェル言語インタプリタbashとdash

現在 /bin/sh がどちらのインタプリタを指しているかを確認する。

ls /bin/sh -al

lrwxrwxrwx 1 root root 4 Mar 26 2018 /bin/sh -> dash



でbin/shがbashを指すように変更します。

sudo ln -fs /bin/bash /bin/sh



または実行 sudo dpkg-reconfigure dash に続いて、NO

または、${GIT_COMMIT:0:6}という式を次のように修正します。

$(echo $GIT_COMMIT | awk '{ string=substr($0,0,6); print string; }')

この記事は、シェルの文字列インターセプトエラーについてです。不正な置換は、このに導入され、より関連するシェル文字列遮断エラーの内容は、スクリプトハウスの過去の記事を検索してくださいまたは以下の関連記事を閲覧し続けることは、将来的にはより多くのスクリプトハウスをサポートしていることを願っています