- 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 $?
0
test -e /etc/passwdddddd
echo $?
1
root# 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 |