シェルスクリプト
シェルスクリプトでシグナルをトラップするにはtrapを使います。 最初の引数が実行コマンドで、その後ろにトラップするシグナルを並べます。 #!/bin/sh trap 'echo exit...' EXIT trap 'echo trap INT or TERM' INT TERM echo start sleep 5 echo end 出力 s…
スクリプトがごちゃごちゃしてきたので #!/bin/sh VAR=ABC echo $VAR $ ./try.sh ABC bin、etc、(log、tmp、...)とディレクトリを分けたら、 $ tree try/ try/ -- bin `-- try.sh `-- etc `-- try.env $ cat try/etc/try.env VAR=ABC binに移動しないとち…
Redhat系のLinux、Solarisをよく使います。 コマンドの違いはtarのzオプション、gzgrepとzgrep、findのコマゴマした仕様など、いろいろあるんですが意外なところではechoの改行抑止があります。 先日、Linuxで動いていた/bin/shスクリプトがSolarisではちゃ…
シェルスクリプトで文字列分割と言えばやはりwhile read while read f1 f2 f3;do echo $f1 echo $f2 done < file.txt 標準入力やファイルから1行ずつ読み込んで、という最もありがちな処理にはこれが1番わかりやすいですね。IFSで区切り文字を変えたりもで…
シェルスクリプトで乱数を得るにはRANDOM変数を参照しましょう。 $ expr $RANDOM % 6 + 1 3 使用例として毎秒5種類のメッセージのどれかをシスログ出力するスクリプト。 while :;do logger -p local5.debug $( sed -n `expr $RANDOM % 5 + 1`p <
FTPの転送処理をシェルスクリプトで実行する例です。 まず理解すること ftpコマンドは標準入力からFTPの内部コマンドを受け取ることができます。たとえばこんなファイルを用意して、 open 192.168.1.10 user www PASSWORD cd /var/www/html ascii get index.…
こういうの。 $ echo {aa,bb}.{1..3} aa.1 aa.2 aa.3 bb.1 bb.2 bb.3すごい便利なんだけど意外と知らない人多い。 シェルスクリプトで数値をカウントするのにこういう書き方もできますが、 $ for ((i=0;$i<10;i++));do echo $i;done 0 1 2 ...このくらいなら…