概要
現象は起きているものの、原因がわからなった問題から対処方法がわかったものを書き残します。
コマンド実行後、返り値をshell内で扱うための変数
特殊変数
php index.php #返り値のあるコマンド
echo $? #最後に実行された返り値が表示される
ifで見かける 比較演算子
比較演算子
# 左右の値が等しければ真
if [ $? -eq 0 ]; then
echo "No Problem :)"
fi
# 左右の値が等しくなければ真
if [ $? -ne 0 ]; then
echo "Have Problem :("
fi
PHPからshellへ値を返すときの関数
PHPからの書き方
<?php
//正常状態を返す場合
exit;
exit();
exit(0);
//異常状態を返す場合
exit(1);
exit(222);
︙
?>
while内で使っていた変数をwhileの外でも使いたい場合
パイプを使った方法では期待した値が表示されませんでした
期待した結果が表示されない
COUNT=0
cat 外部ファイルのパス | while read line
do
let COUNT++
done
echo $COUNT #whileでループされた分は表示されず、0が表示される
期待した結果が表示される
COUNT=0
while read line
do
let COUNT++
done < 外部ファイルのパス
echo $COUNT #whileでループされた分だけ表示される
参考投稿
Shell 特殊変数
シェルスクリプト(bash)のif文やwhile文で使う演算子について
シェルスクリプト最大の罠、while問題
シェルスクリプトで外部ファイルに記述された変数を利用する方法