全文検索:
- 03 特殊な変数展開
- すると最後までとして解釈します。 * 変数VARの値の2番目から6個を切り出す。 <code console> $ VAR=0123456789 $ echo ${VAR:2:6} 234567 ... 数名**を全て表示します。 * VAR*と合致する**変数名**を全て表示する。 <code console> $ VAR_1=0123 $ VAR_2=abcd $ VAR_3=wxyz $... しますが、それによく似ています。 * 変数VAR1とVAR2の文字数を表示する。 <code console> $ VAR1=0123 $ VAR2="abcd xyz" $ echo ${#VA... カードが使えます。 * 変数VARに代入されている値から最短一致でabcを削除 <code console> $ VAR=abc1234xyz987abcd1234efg $ echo ${VAR#
- 01 Bash - 制御文
- "Number is grater than 0." fi </code> 実行例 <code console> $ sh test01.sh 6 Number is Less than or equal 0.... 0 1 2 3 4 5 do echo $i done </code> 実行例 <code console> $ ./for_test01.sh 0 1 2 3 4 5 </code> ===== f... <10 ; i++ )) do echo $i done </code> 実行例 <code console> $ ./for_test02.sh 0 1 2 3 4 5 6 7 8 9 </code> ==... p $INTERVAL done </code> 実行例 10分おきに実行し続ける。 <code console> $ ./while_test02.sh %%%%% 2006年 6月21日 水曜日 23時28分
- 06 Bash リダイレクション
- ===== 例 ===== === lsコマンドの結果をlistへ書き込む。 === <code console> $ ls > list </code> === 既存のファイルに追加書き込み === dateコマンドをlistへ書き込んだ後、追加でlsの結果を書き込む。 <code console> $ date > list $ ls >> list </code> === 1(標準出力)をlogに2(標準エラー)をerrlogに出力する。 === <code console> $ command > log 2> errlog </code> === エラー(2)を/var/log/rsync.logへ、標準出力(1)を/dev/nullへ === <code console> * 6 * * * root /root/rsync.sh 2> /var/log/rsync
- 09 color表示 @bash:script
- agenta 46 Cyan 47 White </code> 1.赤文字にする。 <code console> echo -e "\e[31m AAAA \e[0m" </code> 2.背景黄色の文字赤にする。 <code console> echo -e "\e[31m\e[43m AAAA \e[0m" </code> 3.大文字緑にする。 <code console> echo -e "\e[1;32m AAAA \e[0m" </code> {{tag>bas
- 10 IPアドレス判定 @bash:script
- ====== 10 IPアドレス判定 ====== <code console> if [ -n "`echo $IP |sed 's/^\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)\.\... exit fi </code> ===== 単純にgrepで検索 ===== <code console> grep -e "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" /var/log/secure </code> こっちの方が正確 <code console> grep -e "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\
- 13 簡単なパケロスチェックプログラム @bash:script
- ===== 60回ずつpnigを打ち続けるプログラム 毎日00:00にローテートする <code console> #!/bin/sh IP=$1 LOG_DIR="./logs" LOG_FILE=${LOG... ロスが発生した時にtracerouteを打つプログラム 毎日00:00にローテートする <code console> #!/bin/sh IP=$1 LOG_DIR="./logs" LOG_FILE=${LOG... ===== Macはpingのオプションがちょっと違うので、ちょっとだけ変更する。 <code console> ping ${IP} -c 1 -w 1 > /dev/null ↓ ping -c
- 15 awkでカウント @bash:script
- awkを使って行数のカウントを行ってみる ==== 下記のリストを利用 ==== <code console> $ cat list A B C D E F G H I C D C </code> ==== どの文字列が何個あるのか出してみる ==== <code console> $ cat a | awk '{count[$0]++} END {for(i in count... 個 I : 1個 </code> ==== 2個以上存在するもののみ表示 ==== <code console> $ cat a | awk '{count[$0]++} END {for(i in count
- 22 Bash flock 2重起動防止 @bash:script
- lock something.sh </code> ==== 実行例 ==== <code| console1> $ flock -n /tmp/flock.lock sleep 360 </code> 「-n」オプションだと、実行せずに終了します。 <code| console2> $ flock -n /tmp/flock.lock echo 'Hello World.' ... de> 「-x」オプションだと、終了を待って実行します。 300秒後に実行される <code| console2> $ flock -n /tmp/flock.lock echo 'Hello World.'
- 04 ヒアドキュメント
- やホワイトスペースなどが、書いたとおりに適用されるヒアドキュメントが構文に存在する。 <code console> $ cat << EOM > aaa > bbb > ccc > ddd > EOM aaa bbb ccc ddd </code> ===== 変数に代入 ===== <code console> $ a=`cat << EOM > aaa > bbb > ccc > ddd > EOM`
- 01 ファイルの指定行を抜き出す @bash:script
- == 指定行を表示 ===== これで、hogehoge.confの100行目を表示 <code console> $ sed -n 100p /etc/hogehoge.conf </code> ===== ... 表示 ===== これで、hogehoge.confの100行目~120行目を表示 <code console> $ sed -n 100,120p /etc/hogehoge.conf </code> =
- 03 実行シェルのディレクトリ @bash:script
- ====== 03 実行シェルのディレクトリ ====== <code console> DIR=`dirname $0` echo $DIR </code> <code console> $ dirname /usr/bin/nkf /usr/bin </code> {{tag
- 06 応答で処理を分岐する @bash:script
- ====== 06 応答で処理を分岐する ====== <code console> #/bin/sh while : do echo "1) ls -sF" echo "2) pwd" echo ... such number.";; esac done </code> ・実行結果 <code console> $ sh sample01.sh 1) ls -sF 2) pwd 3) w 4) clear
- 04 引数の取得 @bash:script
- hift i=`expr $i + 1` done </code> 実行結果 <code console> $ ./arg.sh a b c d e f g h i j k Arg 1 = a Arg 2
- 07 数値チェック @bash:script
- ます。 \\ そして、残った文字列が0なら数字だけ、0じゃなければ、文字列も含まれる。 <code console> A=`echo -n $1|sed 's/[0-9]//g' ` if [ -n "$A" ];
- 08 複数行のコメントアウト @bash:script
- を付ければよい\\ C言語の"*/ (コメントアウト部分) /*"と同じ効果が得られる <code console> #!/bin/bash (スクリプト) : << '#COMMENT_OUT' (コメント