BShellまとめ
Information
version | date | memo |
---|---|---|
1.0 | 2012/09/16 | first |
for文を用いたファイル群変更
## Regular : 正規表現 ## toFile : 変換後ファイル名 for i in $(ls | grep -e "Regular");do mv $i toFile; done
- 正規表現
- 文末 $
- 文頭 ^
- 変数(一致箇所削除)
- 先頭一致(#, ##)
- 後方一致(%, %%)
- #,%が最短、##,%%が最長
# 例(文末) # picture01.txt, picture01.txt_backup があるとする for i in $(ls | grep -e "picture0[0-9].txt"); do echo $i; done # とすると # $ picture01.txt # $ picture01.txt_backup # となり for i in $(ls | grep -e "picture0[0-9].txt$"); do echo $i; done # とすると # $ picture01.txt # となる # 例(後方一致) for i in $(ls | grep -e "picture0[0-9].txt$");do echo ${i%.txt}; done # $ picture01 # となる。
シェル変数展開まとめ
http://open-groove.net/shell/summary-variables/
ファイル読み込み
# readのオプションにeをつけるのが味噌。 # (eはエスケープコマンド無視) while read -e LINE;do echo $LINE; done < "ファイル名"
非同期実行
コマンド実行中に、「実行中です........」みたいなのをやりたいなと思った。
以下コード
emacs & # emacsをバックで動作 PID=$! # PID値取得 echo -n 実行中です while [ 0 ]; do echo -n . #sleep 1 done & PID2=$! # "."表示PID値取得 wait $PID if [ $PID ]; then echo 正常終了 else echo 異常終了 fi kill -9 $PID2 # プロセス強制終了
killのオプションについて
http://www.k-tanaka.net/unix/kill.html
参考リンク
Bシェル基礎文法最速マスター
http://chaichan.lolipop.jp/src/BSH.htm