2012-02-01 9 views
1

bashの1行に文字列として格納されたコマンドをどのように実行しますか?たとえば、これは機能しませんが、私は似たようなことをしたいと思います。どのようにコマンドをbashの1行に文字列として格納しますか

これを行うことは可能ですか、またはbashスクリプトを作成する必要がありますか?

更新

私はいくつかの1行のコマンドライン文を格納するboomを使用しています。私はそれらを手に入れて実行できるようにしたい。このような何か:このスクリプトを実行する

boom echo name | eval 
+0

特にechoを使用する場合は、 'echo" uname -a "| sh 'が働くでしょう。 – tripleee

+0

@ tripleee worksありがとうございました:)あなたのコメントを回答として追加し、私はそれを受け入れます。 – Neil

答えて

3

bash -c "your-string-with-shell-commands" 

など。

1
#!/bin/sh 
s="date +%Y-%m-%d" 
$s 

2012-02-01を印刷します。通常、このような場合にはより良いアプローチがある

+0

スクリプトではなくコマンドラインで実行できますか? – Neil

+0

bashではこれはまったく同じです。 –

+1

ほんのちょっとした注意:デフォルトでは、いくつかのシェル(たとえばzsh)は単語/フィールドの分割を実行せず、複数の単語からなるシェルコマンドは単一のコマンドとして展開されます(つまり機能しません)。 –

2
s='<your_string>' 
eval "$s" 

注(すなわち、おそらくあなたはevalのは必要ありません)。

0

あなたはこのようにbashの-cオプションを使用することができます:あなたは、具体的echoを使用したいとサブシェル、echo "uname -a" | sh作品を産卵気にしない場合は

bash -c "dirname $PWD/foo" 
関連する問題