bash

findで検索してコマンド実行する

Fedora13 3日後にはいつも忘れる。 ファイルを検索して、さらにファイル文字列を検索する(find + grep) find ./ -type f -exec grep test {} /dev/null \; ファイルを検索して、削除 find ./ -type f -name "Thumbs.db" -exec rm {} \; # manには記載され…

コメント

ubuntu9.10 「#」で始まる行はコメント。1行目(シーバン行)を除く。 #! /bin/sh #こめんと

コマンドの実行結果を取得する

ubuntu9.10 シェルの中で、コマンドの実行結果を取得する方法 以下のどちらでも使用できるが、「$(コマンド)」推奨。(ネストできないし、分かりにくい) $(コマンド) `コマンド` ※「`」はバッククォート。「'」ではない。 #! /bin/sh date1=`date` #=>2010年 …

四則演算

ubuntu9.10 シェルで足し算や引き算するには、ちょっとテクニカル。 bash #! /bin/sh TWO=2 THR=3 add=$(($TWO + $THR)) #=> 5 sub=$(($TWO - $THR)) #=> -1 mul=$(($TWO * $THR)) #=> 6 div=$(($TWO / $THR)) #=> 0 mod=$(($TWO % $THR)) #=> 2 sh ※exprを…

デバッグ方法

ubuntu9.10 実行内容を表示しながら実行する 変数等が展開される。 実行時に「-x」オプションをつけて実行する。 シーバン行に -xをつけても同じ。■ソース #! /bin/sh -x STR="abcde" echo $STR ■実行結果 machu@linea:tmp$ ./smp + STR=abcde + echo abcde …

繰り返し処理

ubuntu9.10 for文その1 要素を変数iに渡し繰り返す この場合は、lsの実行結果を要素としている #!/bin/bash for i in $( ls ); do echo item: $i done for文その2 指定した数だけ繰り返す この場合は、seqで数字を作っている #!/bin/bash for i in `seq 1 …

同じ行に続けて表示する

Ubuntu9.10 進捗表示などで同じ行に表示し続ける処理をするには、 キャリッジリターン(¥r)を使用する。 これは、プロンプトの先頭にカーソルを動かしたことになる。 #! /bin/sh # 現在時刻を表示するスクリプト while true do echo -e "`date +%H:%M:%S`…