AAA <options>; CCC AAA <options>
AAA
、CCC
別のコマンドです。
ここにzshスクリプトがあります。たとえば、次のようになります。
vi script.zsh
<...>
AAA <options>; CCC AAA <options>
<...>
詳細:私が間違っている場合はCCC AAA <options>
訂正AAA <options>
してください。サブシェルを使用してから、現在のシェルで別々のプロセスを作成するか、現在のシェルを使用してプロセスでサブプロセスを作成することができます。現在スクリプトを実行しています。
問題は完成CCC
後も生き残るという点だ。script.zsh
これにより、戻り値の代わりに結果を呼び出そうとすると問題が発生します。 (完了後に何かを作成します。ie用に新しく作成されたオブジェクトです。CCC AAA <options>
)AAA <options>
~へ script.zsh
not found
警告を発します。
しかし、script.zsh
現在の結果をどのように見ることができますか'AAA <options>'
?
可能であれば、Zシェルを目指してください。
編集:次のようにする必要があります。
AAA <options>; CCC AAA <options>
答え1
いいえ、
CCC 'AAA <options>'
CCC
リテラルパラメータで始まりますAAA <options>
。すべての殻は同じです。echo
代わりに、次のコマンドを使用できますCCC
。
$ echo 'AAA <options>'
AAA <options>
CCC
出力(末尾の改行なし)を単一の引数AAA
として呼び出すには、次のようにします。
CCC "$(AAA <options>)"
CCC
出力にできるだけ多くの単語(スペース、タブ、改行、NUL区切り文字)を使用して呼び出すには、AAA
次のようにします。
CCC $(AAA <options>)
それにもかかわらず、returnCCC
の前には開始されず、AAA
スクリプトはCCC
returnの前には終了しません。
コマンドが返される前にスクリプトを終了するには、次のようにコマンドを非同期的に開始する必要があります。
CCC args &
とにかく、これはすべてのシェルで同じであり、具体的ではzsh
ありません(上記のNUL分割を除く)。