Skip to content

Instantly share code, notes, and snippets.

@sezemiadmin
Last active October 24, 2018 07:43
Show Gist options
  • Save sezemiadmin/75fe4a3e2febeabc22bf3fa861e4d64d to your computer and use it in GitHub Desktop.
Save sezemiadmin/75fe4a3e2febeabc22bf3fa861e4d64d to your computer and use it in GitHub Desktop.
シェルスクリプト入門 サンプルプログラム
  • 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 #;で改行
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment