1

今日、私はこれを試してみましたが、うまくいかないことに少し驚きました:

$ nice -n 10 { ./configure && make ; }
-bash: syntax error near unexpected token `}'

「サブコマンド」でグループ化を使用する方法はありますか?

4

2 に答える 2

2

これを試しましたか?=)

 nice -n10 bash -c './configure && make' 
于 2012-12-07T20:41:56.940 に答える
1

シェル構文をプログラムの argv に渡すだけで、それを理解することを期待することはできません。具体的には、表示されているエラーは、コマンドを区切る「リスト演算子」である&&andが原因です。;Bash は次のように引数を評価しようとしていますnice:

nice '-n' '10' '{' './configure'

次に、Bash は&&( make) の後の次のコマンドを評価しようとし、次に次のコマンドである を評価しようとし}ます。技術的には、ブレースは「予約語」と「制御演算子」の両方です。異なるシェルはベアブレースの扱いが少し異なりますが、それは難解な詳細です. ポイントは、解析エラー (ここのような) になるか、" }" という名前のコマンドが見つからないためにエラーになるか (通常は前者.

この規則の例外は、シェル自体の内部にのみ存在します。たとえば、Bashcoprocキーワードはこのように機能し、例とほぼ同じように引数の特別な解析と評価を有効にします。

于 2012-12-07T20:56:24.600 に答える