- - PR -
コマンドの実行結果をシェルスクリプトの引数にする方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-03-30 15:59
#date date +'%w' の結果をシェルの引数にしたいのですが
どのようにすればよいでしょうか? ■環境 RedHatLinux9.0 ■試したこと @ #date date +'%w' | ./test.sh これでは引数として認識してくれませんでした A#date date +'%w' > res_file | ./test.sh < res_file これもだめでした ■シェル(ファイル名test.sh) #!/bin/sh case $1 in "0") echo "0" ;; "1") echo "1" ;; "2") echo "2" ;; "3") echo "3" ;; "4") echo "4" ;; "5") echo "5" ;; "6") echo "6" ;; *) echo "7" esac 以上、よろしくお願いします |
|
投稿日時: 2005-03-30 16:11
./test.sh `date date +'%w'` で良いと思います。 |
|
投稿日時: 2005-03-30 16:21
ご回答ありがとうございます
`←この文字はどのキーで打てばよいのですか? よろしくお願いします |
|
投稿日時: 2005-03-30 16:23
日本語キーボードだったら、[Shift + @]です。
|
|
投稿日時: 2005-03-30 16:24
バッククォートですか?
大概は Shift + @ でいけると思います。 [ メッセージ編集済み 編集者: ishi 編集日時 2005-03-30 16:26 ] |
|
投稿日時: 2005-03-30 16:28
「./test.sh `date date +'%w'` 」 で解決しました。 ありがとうございました。 |
|
投稿日時: 2005-03-30 17:00
バッククォート使った書式はshへの互換性のために残してある書式です。
少なくともLinuxのsh(bashのPOSIXモード)やbashを使う限りでは、 ./test.sh $(date date +'%w') の書式が使えます。 若干挙動が違いますが、その辺はman bash で「コマンド置換」という項目で触れられています。 どっちを使うのがいいかは何とも言えないです。 バックスラッシュ使った方法しか知らない人はいるでしょうし。 僕自身は、Linuxでしか使わないシェルスクリプトを書くなら、 #!/bin/sh じゃなく #!/bin/bash を使った方が自由度も高ければプログラムとしての見通しも良くなるとは思ってます。 |
|
投稿日時: 2005-03-30 17:43
date date +'%w'|xargs ./test.sh
でもよいですよ。 man xargs _________________ |
1