execコマンドはxargsを受け入れず、コマンド入力でハングします

user2183336

私はあまり詳しくありませんexec私はいくつかのテストと例を実行していました。ファイルに書かれたコマンドを渡したかったのです。そのコマンドexecは、コマンドラインで直接実行されたかのように実行されることを期待しています。これが私がセットアップして試したものです:

[kellyry@ch12ldvela00 ~]$ cat exec_test
ls
[kellyry@ch12ldvela00 ~]$ cat exec_test | exec
[kellyry@ch12ldvela00 ~]$ cat exec_test | xargs exec
xargs: exec: No such file or directory
[kellyry@ch12ldvela00 ~]$ exec ls
exec_test            file2             file3
. . .          

これが最も奇妙な部分です。最後の行を実行exec lsしても戻りません。それは端末がハングし、通信できません。この最後の問題は、サーバーにSSH接続するために使用しているMobaxtermの問題である可能性があると考えています。

ジグリナガ

bashマンページから

exec [-cl] [-a name] [command [arguments]]

場合はcommand指定されている、それはシェルを置き換えます。新しいプロセスは作成されません。

[...]

command指定されていない場合、リダイレクトは現在のシェルで有効になり、戻りステータスは0になります。

にパイプ exec

あなたが最初に試したのは

cat exec_test | exec

これは、引数としてではなく、標準入力で送信lsexecれます。exec引数なしで実行され、リダイレクトがないため、何も実行されません。

ファイル内のコマンドを実行(または「実行」)したい場合、それexecは目的ではありませんあなたはsource(または略語.)でそれを行うことができます

source exec_test

にパイプ xargs exec

次に試みたのは

cat exec_test | xargs exec

execbashが組み込まれています。これはbash内でのみ利用可能であるためxargs、実行するために見つけることができません。

exec メインシェルで

最後に、あなたは試しました

exec ls

これが実行さlsれ、ターミナルがハングしました。これは、文書化されているように、シェルプロセスに取って代わったためです。一度ls終了していると、端末で実行して、もはや何もありません。(一部のターミナルエミュレーターは、この時点で自動的に閉じます。幸い、閉じられなかったため、出力を表示できました。)

あなたがフォローしようとしていた例では、余分なステップを持っていました:

bash
exec ls

これは最初bashに、「トップレベル」の子として実行される新しいを開始します。次にexec ls、そのシェルを置き換えて終了します。その後、親シェルが再開するため、端末がスタックしたままになることはありません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

rsyncコマンドは、コマンドラインで最大2つの引数を受け入れます

分類Dev

Xargsは、パイプを含むコマンドに入力を渡します

分類Dev

コピーコマンドはコマンドラインで変数を受け入れませんか?

分類Dev

Windowsdockerコマンドラインは内部コマンドを受け入れることができません

分類Dev

nautilusはコマンドでパスワードを受け入れません

分類Dev

nautilusはコマンドでパスワードを受け入れません

分類Dev

Pythonで入力をstrではなくintとして受け取る入力コマンド

分類Dev

VNC:コンソールはキーボード/マウス入力を受け入れません

分類Dev

コマンドに入力を入力しますか?

分類Dev

iptablesコマンドはparrotOSでは受け入れられません

分類Dev

入力フィールドは、jquery検証で最大5つのコンマのみを受け入れる必要があります

分類Dev

csvからの入力でxargsを使用してcurlコマンドを並行して実行します

分類Dev

`history`コマンドは以前に入力されたコマンドを保存できませんでした

分類Dev

xargs入力を使用したsedの複数のコマンド

分類Dev

xargs | コマンドとして入力を使用

分類Dev

xargs | コマンドとして入力を使用

分類Dev

コマンドラインFFMPEGを実行して、最初の入力をブロックせずに複数のパイプ(ビデオとオーディオ)を受け入れるにはどうすればよいですか?

分類Dev

CLIでコマンドを自動入力しますか?

分類Dev

コマンドを入力として受け取り、それを端末で実行するプログラム

分類Dev

json入力を受け取るRESTAPIのcurlコマンド

分類Dev

Discord.jsclearコマンドは数字を受け入れません

分類Dev

コマンドレットがパイプライン入力を受け入れる場合、ByPropertyNameとByValueの違いは何ですか?

分類Dev

コマンドラインでファイルのリストを受け入れ、xargsを使用してそれらすべての日付付きコピー(basename_date.extension)を作成するにはどうすればよいですか?

分類Dev

ネストされたスイッチ:2番目のswitchコマンドが入力を受け入れないのはなぜですか?

分類Dev

remap通常モードで入力しますが、コマンドラインでは入力しません

分類Dev

JFormattedTextFieldはコンマを表示し、小数点を受け入れます

分類Dev

このコマンドが、再定義にもかかわらずファイルから入力を受け取らないのはなぜですか?

分類Dev

コントローラーはparams値を受け入れませんが、ハードコードされた同じ値は受け入れられます

分類Dev

パスワードを入力せずにコマンドでネットワークを再起動します

Related 関連記事

  1. 1

    rsyncコマンドは、コマンドラインで最大2つの引数を受け入れます

  2. 2

    Xargsは、パイプを含むコマンドに入力を渡します

  3. 3

    コピーコマンドはコマンドラインで変数を受け入れませんか?

  4. 4

    Windowsdockerコマンドラインは内部コマンドを受け入れることができません

  5. 5

    nautilusはコマンドでパスワードを受け入れません

  6. 6

    nautilusはコマンドでパスワードを受け入れません

  7. 7

    Pythonで入力をstrではなくintとして受け取る入力コマンド

  8. 8

    VNC:コンソールはキーボード/マウス入力を受け入れません

  9. 9

    コマンドに入力を入力しますか?

  10. 10

    iptablesコマンドはparrotOSでは受け入れられません

  11. 11

    入力フィールドは、jquery検証で最大5つのコンマのみを受け入れる必要があります

  12. 12

    csvからの入力でxargsを使用してcurlコマンドを並行して実行します

  13. 13

    `history`コマンドは以前に入力されたコマンドを保存できませんでした

  14. 14

    xargs入力を使用したsedの複数のコマンド

  15. 15

    xargs | コマンドとして入力を使用

  16. 16

    xargs | コマンドとして入力を使用

  17. 17

    コマンドラインFFMPEGを実行して、最初の入力をブロックせずに複数のパイプ(ビデオとオーディオ)を受け入れるにはどうすればよいですか?

  18. 18

    CLIでコマンドを自動入力しますか?

  19. 19

    コマンドを入力として受け取り、それを端末で実行するプログラム

  20. 20

    json入力を受け取るRESTAPIのcurlコマンド

  21. 21

    Discord.jsclearコマンドは数字を受け入れません

  22. 22

    コマンドレットがパイプライン入力を受け入れる場合、ByPropertyNameとByValueの違いは何ですか?

  23. 23

    コマンドラインでファイルのリストを受け入れ、xargsを使用してそれらすべての日付付きコピー(basename_date.extension)を作成するにはどうすればよいですか?

  24. 24

    ネストされたスイッチ:2番目のswitchコマンドが入力を受け入れないのはなぜですか?

  25. 25

    remap通常モードで入力しますが、コマンドラインでは入力しません

  26. 26

    JFormattedTextFieldはコンマを表示し、小数点を受け入れます

  27. 27

    このコマンドが、再定義にもかかわらずファイルから入力を受け取らないのはなぜですか?

  28. 28

    コントローラーはparams値を受け入れませんが、ハードコードされた同じ値は受け入れられます

  29. 29

    パスワードを入力せずにコマンドでネットワークを再起動します

ホットタグ

アーカイブ