bashのスクリプトでif
を使う時、then
〜fi
間に何のコマンドも含んでいないスクリプトはエラーになってしまいます。
if [ $value = "abc" ]
then
# 何もしない
fi
エラーの内容
bash: syntax error near unexpected token `fi'
何もしない分岐は削除すればいいだけですが、elif
節やelse
節での条件を簡略化したい場合など、何もしない分岐を作りたくなることもあるかなと思います。
そんな時はコロン:
というBUILTIN COMMANDを使うと良いみたいです。
次のような感じで使います。
if [ $value = "abc" ]
then
:
fi
elif
節やelse
節でも同様です。
困っている方は試してみてください。
関連記事
Shellのコマンドライン引数の扱い方
コマンドライン引数の取得(表示)
$ cat sample1.sh
#!/bin/sh
echo 1st: $1
echo 2nd: $2
echo all: $@
$ ./sample1.sh aaa bbb ccc
1st: aaa
2nd: bbb
all: aaa bbb ccc
コマンドライン引数の個数
$ cat sample2.sh
#!/bin/sh
echo ...
シェル(bash)でスペースの代わりに改行区切りでforループする方法
シェル(bash)のforループを使うとスペース区切りの文字列でループしてコマンドを実行することができます。(参考:forループに関する覚え書き)
便利な機能ですがスペースではなく改行\nでループしたい場合もあるかと思います。そういう場合にはIFSを使ってdelimiterを変更するテクニックがあるそうです。
使い方
今回は次のようなテキストファイルを使って1行ずつコマンドを実...
Shellスクリプトでif文の使い方メモ
個人的によく使うif文の書き方をメモです。
使い方
if [ 条件 ]
then
# 実行したいコマンド
elif [ 条件 ]
then
# 実行したいコマンド
else
# 実行したいコマンド
fi
elifが不要な場合はelifからの3行、elseが不要な場合はelseからの2行を削除してください。thenをよく忘れるので気をつけてください。
...
Shellスクリプトでcase文の使い方メモ
bash(sh)でcase文を書くときの基本は次のような感じです。
case $変数 in
パターン1)
実行したい内容1
;;
パターン2)
実行したい内容2
;;
esac
ということで、case文でよく使われるパターンを2つほど紹介してみようと思います。
曜日ごとに異なる内容を実行したい場合(cronで便利です)
case `...