ファイル番号が/tmp/gish.dat
で、数字(0以上、1桁以上)または何も含まれていません。Bashの正規表現が内部に一致しない場合
数字がある場合は、#
と番号(たとえば#64
)を返すように機能します。数字がない場合は、私の機能が何もしないようにしたい。
get_issue() {
if [ -f "/tmp/gish.dat" ]
then
iss=$(cat /tmp/gish.dat | grep -Eo '[0-9]+')
if [[ iss =~ '[0-9]+' ]]
then
echo "#$iss"
fi
fi
}
なんらかの理由で、内側のifが決して一致しません。非常にbashに新しい。
あなたはドルが不足していると思うチェックアウトシンボルを変数に追加します。 if条件で$ issに変更します。 – benjamin
外側のifが正しく動作すると仮定して、シェル呼び出し(iss)の結果を出力し、正しく動作しているかどうかを確認してください。編集:ベンジャミンが既に言及したように、あなたがドル記号を紛失していることを確かめてください。 –
もしファイルが空であるかどうかをテストするために-sオプションを見ることをお勧めします:) – grail