アットウィキロゴ

UNIXのシェル > コマンドの実行

リダイレクト
[command1] | [command2]
[command1]の標準出力を[command2]の標準入力とする。

[command1]の標準出力をリダイレクトしてcommand2の標準入力にする。
[command1] | xargs [command2]
こうすると、[command1]の結果を1行ずつ[command2]を実行する。
実際は1行ずつではなく、適当にまとめて実行してくれるとか何とか・・・。


実行結果を捨てる
$ command >/dev/null 2>&1
# 下は間違い
$ command 2>&1 >/dev/null
→標準エラー出力を標準出力のクローンとし、標準出力を/dev/nullのクローンとする。
 →標準出力は/dev/nullになるが、標準エラー出力は標準出力のまま。

shの引数
(どこかのサイトに綺麗にまとまっていたので、それをメモしたもの。)
$# 引数の数。
 「$ ./test.sh a b c」の場合、 $# を参照するとその値は 3 となる。
 「$ .  test.sh a b c」の場合でも、 $# を参照するとその値は 3となる。
$@ 全パラメータ。
 「$ ./test.sh a b c」の場合、 $@ を参照するとその値は 「a b c」 となる。
$*  $@ と基本的に同じ。何が違うんだろう?
$0 実行時のコマンド名。
 「./test.sh」と実行した場合には「./test.sh」が、「/home/user/test.sh」と実行した場合には「/home/user/test.sh」が設定される。
 ただし、「. test.sh」と実行した場合には「-bash」(そのユーザーが実行中のシェル)となった。(MacOS X Leopard)
$1 ~ $n それぞれの引数の値。
 1番目に指定した引数は $1 に、n 番目に指定した引数は $n に設定される。
    10番目以降の引数参照時は ${10} のように中括弧で囲む。

シェルスクリプト実行時の引数
sh -v
シェル実行前に、シェルの内容を出力
最終更新:2010年04月27日 10:40
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。