sdbsh
名称
sdbsh - sdb にリストされたファイルに対してshellコマンドを実行する
使用法
sdbsh
[ -pipe | - | -nopipe ]
[ -do {good, bad} ]
[ -cmd shell_command ]
[ -var_string scn_string ]
機能
sdbにリストしたscnファイル名に対して1つずつ同一のシェルコマンドを
まとめて実行する。
sdbにリストしたファイルだけ移動する(mv)とか、ファイルサイズを見る(ls -l)とか、
リストしたbadフラグファイルだけ消去する(rm)とかしたい場合に便利。
それぞれの例としては
sdbload abc | sdbsh -cmd 'mv $scn backup'
sdbload abc | sdbsh -cmd 'ls -l $scn'
sdbload abc | sdbsh -do bad -cmd 'rm $scn'
などを実行すれば良い。
フィルタ種別
.sdb | sdbsh ( | .sdb )
オプション
- -pipe | - | -nopipe
- キーワード -pipe または -
は、.sdbフローを次の処理に流す。
キーワード-nopipe は、フローを次に流さない。
- -do good | bad
- sdb の行に付いていた good/bad のどちらに対して実行するか。
- -cmd shell_command
- sdb の行にあるscnファイル名に対して実行したいコマンド。
実行時にshellが解釈するが、ここへ渡される以前にもコマンドシェルが
解釈してしまうことに注意。したがって、コマンド制御文字はエスケープする
なり、コーテーションを用いるなりの対応が必要である。
なお、scnファイル名に置き換えるべき文字列(デフォルトでは$scn)を
1つだけ記述できる。
この文字列は実行時にファイル名で置き換えられる。
置換文字列がコマンド中にない場合は、末尾に指定されたものとして動作する。
最終キーワードとして指定する場合に限り、-cmdを省略できる。
- -var_string scn_string
- シェルコマンドの中で、sdbエントリになっているscnファイル名に
置き換えるべき文字列を指定する。デフォルトでは$scnになっている。
デフォルト
- -nopipe -do good -var_string \$scn -prm sdbsh.prm
バグ
- $scnとなっている置換文字列は、単純に置き換えるので、
$scnxと入力すると$scnに文字xが引き続いているものと解釈してしまう。
- シェルコマンドの文法チェックはしていない。このため
置換文字列を制限数以上記述した場合の動作は保証できない
- 置換文字列を置き換えるのはsdbファイルに書かれたエントリ文字列自体ではなく
環境変数や拡張子が補われた後の文字列である。
参照
sdbload,
sdbselect,
.sdb
履歴
- ver.3.00
- 2003/1/5 T.Handa
マニュアルのバージョン
2003/1/5 T.Handa
目次へ戻る