- for の後に条件を書く
for i in 1 2 3 4 5 #iという変数に1, 2, ... 5 を代入- do と done の間に書いた処理が繰り返される
do
#ここに処理を書く。なお、インデントは入れると見やすい
done- ワンライナーという書き方もある
#! /bin/sh
for i in 1 2 3 4 5;do echo "$i回目";done #;で改行for i in 1 2 3 4 5 #iという変数に1, 2, ... 5 を代入do
#ここに処理を書く。なお、インデントは入れると見やすい
done#! /bin/sh
for i in 1 2 3 4 5;do echo "$i回目";done #;で改行test -e /etc/passwd # etc に passwd があるか
echo $?
0test -e /etc/passwdddddd
echo $?
1root# DATE=$(date)
root# echo $DATE
2018年 10月 10日 水曜日 16:25:23 DST| if (条件 testコマンドなど) | |
| then | |
| (成立 0) | |
| else | |
| (不成立 1) | |
| fi #ifの終了を表す |
| for filename in `ls /etc/*.conf` | |
| do | |
| echo $filename | |
| done |
| for i in `seq 1 10` #seq は sequential | |
| do | |
| echo "$i回目" | |
| done |
| #!/bin/sh #シバン (シェバン) からスクリプトを実行するインタープリタが呼ばれ `/bin/sh` のファイルが実行される | |
| echo 'Hello, World!!' | |
| echo $$ # $$は変数でプロセスID | |
| echo $USER #ログインユーザー名を表示 | |
| echo "#login user#" | |
| cat error.txt 2> /dev/null #/dev/null に入れると破棄される。なお 2> は条件分岐してエラーが起こった場合の岐路 |
| #!/bin/sh | |
| ipbase=192.168.250 #ipbaseという変数を定義 | |
| for i in `seq 1 10` #iに1から10まで代入 | |
| do | |
| target=${ipbase}.${i} #192.168.250.1~10 までをtargetという変数につど代入 | |
| ping -c 1 $target > /dev/null #pingで疎通確認 | |
| if [ $? -eq 0 ] #0 が equal かどうか判定 | |
| then | |
| echo "{$target}は稼働中です。" #正常メッセージの出力 | |
| else | |
| echo "{$target}は停止しています。" #エラーメッセージの出力 | |
| fi | |
| done |