- ベストアンサー
if文がうまくできません;;
こんにちわ。 当方、linux初心者です。 今if文を作っているのですが、どうしてもうまくいきません。 ●lsで出力した結果が何行出力されたかによって回答が変わるシェルを作成してください。(10以上と9~3と2以下の3種類) という例題を解答中ですが、下記のとおり作ったのですが 何かアドバイスは頂けませんか? お願い致します。 #!/bin/bash ls -l > case.txt P=`cat case.txt | wc -l` if $P -ge 10 then echo '10以上' elif $P -ge 3 ; then echo '3以上' elif $P -le 2 ; then echo '2以下' fi
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
if [ $P -ge 10 ]; then ちなみにこの [ は単なる括弧ではなく組み込みコマンドです。 コマンドなので [ の前後にスペースが必要です。 でも私は if test $P -ge 10; then の書き方が間違いがなくて好きです。
その他の回答 (2)
- OKwebb
- ベストアンサー率44% (92/208)
うまくいかないのはif文かな。 条件式は[]で括った方がいいよ。 if [ $P -ge 10 ]; then 気をつけるのは括弧と条件式の間にspaceをいれること。 あと、最後のelifはelseでもいいかもね。
お礼
ありがとうございます! []つけたら表示されました♪ 本当に有難うございました!
- php504
- ベストアンサー率42% (926/2160)
検索したところbashのif構文は if [ 値1 比較演算子 値2 ];then 実行文 fi とのことで [ ] と ; が無いのが原因ではないでしょうか
お礼
ありがとうございます! []つけたら表示されました♪ 本当に有難うございました!
お礼
ありがとうございます! []つけたら表示されました♪ また、testを使った方法もあるのですね! 勉強します! 本当に有難うございました!