- PR -

コマンドの実行結果をシェルスクリプトの引数にする方法

1
投稿者投稿内容
JJ
ベテラン
会議室デビュー日: 2003/02/25
投稿数: 61
投稿日時: 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

以上、よろしくお願いします
ishi
会議室デビュー日: 2004/07/16
投稿数: 17
投稿日時: 2005-03-30 16:11

./test.sh `date date +'%w'`

で良いと思います。
JJ
ベテラン
会議室デビュー日: 2003/02/25
投稿数: 61
投稿日時: 2005-03-30 16:21
ご回答ありがとうございます

`←この文字はどのキーで打てばよいのですか?

よろしくお願いします
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2005-03-30 16:23
日本語キーボードだったら、[Shift + @]です。
ishi
会議室デビュー日: 2004/07/16
投稿数: 17
投稿日時: 2005-03-30 16:24
バッククォートですか?

大概は Shift + @ でいけると思います。

[ メッセージ編集済み 編集者: ishi 編集日時 2005-03-30 16:26 ]
JJ
ベテラン
会議室デビュー日: 2003/02/25
投稿数: 61
投稿日時: 2005-03-30 16:28

「./test.sh `date date +'%w'` 」
で解決しました。

ありがとうございました。
Mattun
ぬし
会議室デビュー日: 2004/08/10
投稿数: 1391
投稿日時: 2005-03-30 17:00
バッククォート使った書式はshへの互換性のために残してある書式です。
少なくともLinuxのsh(bashのPOSIXモード)やbashを使う限りでは、
./test.sh $(date date +'%w')
の書式が使えます。
若干挙動が違いますが、その辺はman bash で「コマンド置換」という項目で触れられています。

どっちを使うのがいいかは何とも言えないです。
バックスラッシュ使った方法しか知らない人はいるでしょうし。
僕自身は、Linuxでしか使わないシェルスクリプトを書くなら、
#!/bin/sh
じゃなく
#!/bin/bash
を使った方が自由度も高ければプログラムとしての見通しも良くなるとは思ってます。
ほろりん
ベテラン
会議室デビュー日: 2004/11/24
投稿数: 98
お住まい・勤務地: あそこ
投稿日時: 2005-03-30 17:43
date date +'%w'|xargs ./test.sh
でもよいですよ。
man xargs
_________________
1

スキルアップ/キャリアアップ(JOB@IT)