出力をリダイレクトすると空のファイルが生成されることがあるのはなぜですか?

学生

シェルパイプラインのパワーは非常に大きいので、時々失敗します。

同じようにたとえば、パイプライン

echo abc > file.txt
cat file.txt | sed 's/a/1/' > file.txt

私に空を与えますfile.txtシェルがおそらく>最初に呼び出すことに気づき、私は変更を加えました。

echo abc > file.txt
{cat file.txt | sed 's/a/1/'} > file.txt

繰り返しますが、別の空のファイルで私を驚かせますfile.txt最終的に機能する醜い方法は

echo abc > file.txt
echo $(cat file.txt | sed 's/a/1') > file.txt

これにより、シェルは最初にサブシェルを実行し、次にリダイレクトします。

質問

私はより良い練習を意識していますがsed、あなたが取り除くことを可能にする、echocatgrep...など、どのような私はここについての好奇心が完全にシェルの文法を学ぶことです。この質問は、上記の特定の問題を修正する方法に関するものではありません。

Q1(編集:オフトピック)文法を学ぶための良いリソースはありますか?

シェルが異なれば文法も異なる可能性があるので、

Q2シェルを冗長にして、コマンドを実行するたびにシェルが何をしているのかを明確に確認できますか?

Q3(編集:オフトピック)グッドプラクティスに関する他のアドバイスはありますか?ありがとうございました!

辺境伯

あなたはあなたがしてはいけないことの1つを首尾よく見つけました:-)あなたが取り組んでいるファイルに決してリダイレクトしないでください!

A1:シェル文法を学ぶための良いリソースは絶対bashスクリプトガイド、IMOでしょう

A2:bashスクリプトの場合set +x、より詳細な出力に使用できますが、「プロンプトで実行する」レベルで同じことを実現する方法がわかりません。

A3:[solved]検索語に追加します。あなたがすでに知っている問題の多くの代わりにあなたの問題の解決策を見つけます。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

出力をファイルにリダイレクトするとテーブルが生成されるのはなぜですか?

分類Dev

シンボリックリンクされたファイルをキャットし、出力を元のファイルにリダイレクトすると、後者のファイルが空になるのはなぜですか?

分類Dev

シンボリックリンクされたファイルをキャットし、出力を元のファイルにリダイレクトすると、後者のファイルが空になるのはなぜですか?

分類Dev

stdoutがファイルにリダイレクトされるときに、Cプログラムの出力順序が異なるのはなぜですか?

分類Dev

ヘッダーファイルをインクルードしようとすると、「そのようなファイルまたはディレクトリはありません」というエラーが表示されるのはなぜですか?

分類Dev

Excelのvlookupのようにbashでawkを使用すると、空の出力ファイルが生成されるのはなぜですか?

分類Dev

sed出力を同じ入力ファイルにリダイレクトするとマシンが応答しなくなるのはなぜですか?

分類Dev

cronから実行すると、このスクリプトがテキストファイルに出力されないのはなぜですか?

分類Dev

stdoutがファイルにリダイレクトされるときに明示的なフラッシュが必要なのはなぜですか?

分類Dev

sudoを使用しても、「ファイルへのリダイレクト」がユーザーとして実行されるのはなぜですか?

分類Dev

macOS でこのスクリプトを実行すると、「そのようなファイルまたはディレクトリはありません」というエラーが表示されるのはなぜですか?

分類Dev

ウェブサイトのモバイルバージョンにリダイレクトされるURLが、フルパスやクエリ文字列を失うことがよくあるのはなぜですか?

分類Dev

同じファイルへの入出力リダイレクト中にファイルが空になるのはなぜですか?

分類Dev

Windowsバッチファイル内からPowerShellスクリプトを実行すると、不要な空行が出力されるのはなぜですか?

分類Dev

google cloudファイルをクエリすると空のリストが返されるのはなぜですか?

分類Dev

STDERRのリダイレクトに使用されるファイルを印刷することは可能ですか?

分類Dev

削除せずに検索してもファイルを見つけることができなかったのに、-deleteを使用して検索すると/ save /ディレクトリ内のファイルが消去されたのはなぜですか?

分類Dev

テキストファイルを使用すると、コードで空の配列([])が出力されるのはなぜですか?

分類Dev

Visual Studioにソリューションフォルダーを追加するとプロジェクトファイルが変更されるのはなぜですか?これを防ぐ方法はありますか?

分類Dev

この空のディレクトリのサイズが3メガバイトを超えていると表示されるのはなぜですか?

分類Dev

リダイレクト演算子がRのsystem()呼び出しでファイルとして解釈されるのはなぜですか?

分類Dev

このモーダルフォームがPHPファイルにリダイレクトされるのはなぜですか?

分類Dev

xslt変換後、ファイルがTomcat / binフォルダーに生成されるのはなぜですか?このディレクトリをwebapps / myAppに変更するにはどうすればよいですか?

分類Dev

React w Gatsby:フォントファイルが2回ダウンロードされることがあるのはなぜですか

分類Dev

crontabで自動的に実行すると、このスクリプトが破損したファイルを出力するのはなぜですか?

分類Dev

バッチファイルでnetcatを使用すると、リダイレクトされても出力がコンソールに残るのはなぜですか?

分類Dev

Pythonなぜファイルパスがディレクトリと見なされるのですか

分類Dev

現在表示されているディレクトリ内のファイルとサブフォルダーにシリアル番号を付けることができるファイルマネージャーはありますか?

分類Dev

S3ディレクトリを作成すると非表示のファイルが作成されるのはなぜですか?

Related 関連記事

  1. 1

    出力をファイルにリダイレクトするとテーブルが生成されるのはなぜですか?

  2. 2

    シンボリックリンクされたファイルをキャットし、出力を元のファイルにリダイレクトすると、後者のファイルが空になるのはなぜですか?

  3. 3

    シンボリックリンクされたファイルをキャットし、出力を元のファイルにリダイレクトすると、後者のファイルが空になるのはなぜですか?

  4. 4

    stdoutがファイルにリダイレクトされるときに、Cプログラムの出力順序が異なるのはなぜですか?

  5. 5

    ヘッダーファイルをインクルードしようとすると、「そのようなファイルまたはディレクトリはありません」というエラーが表示されるのはなぜですか?

  6. 6

    Excelのvlookupのようにbashでawkを使用すると、空の出力ファイルが生成されるのはなぜですか?

  7. 7

    sed出力を同じ入力ファイルにリダイレクトするとマシンが応答しなくなるのはなぜですか?

  8. 8

    cronから実行すると、このスクリプトがテキストファイルに出力されないのはなぜですか?

  9. 9

    stdoutがファイルにリダイレクトされるときに明示的なフラッシュが必要なのはなぜですか?

  10. 10

    sudoを使用しても、「ファイルへのリダイレクト」がユーザーとして実行されるのはなぜですか?

  11. 11

    macOS でこのスクリプトを実行すると、「そのようなファイルまたはディレクトリはありません」というエラーが表示されるのはなぜですか?

  12. 12

    ウェブサイトのモバイルバージョンにリダイレクトされるURLが、フルパスやクエリ文字列を失うことがよくあるのはなぜですか?

  13. 13

    同じファイルへの入出力リダイレクト中にファイルが空になるのはなぜですか?

  14. 14

    Windowsバッチファイル内からPowerShellスクリプトを実行すると、不要な空行が出力されるのはなぜですか?

  15. 15

    google cloudファイルをクエリすると空のリストが返されるのはなぜですか?

  16. 16

    STDERRのリダイレクトに使用されるファイルを印刷することは可能ですか?

  17. 17

    削除せずに検索してもファイルを見つけることができなかったのに、-deleteを使用して検索すると/ save /ディレクトリ内のファイルが消去されたのはなぜですか?

  18. 18

    テキストファイルを使用すると、コードで空の配列([])が出力されるのはなぜですか?

  19. 19

    Visual Studioにソリューションフォルダーを追加するとプロジェクトファイルが変更されるのはなぜですか?これを防ぐ方法はありますか?

  20. 20

    この空のディレクトリのサイズが3メガバイトを超えていると表示されるのはなぜですか?

  21. 21

    リダイレクト演算子がRのsystem()呼び出しでファイルとして解釈されるのはなぜですか?

  22. 22

    このモーダルフォームがPHPファイルにリダイレクトされるのはなぜですか?

  23. 23

    xslt変換後、ファイルがTomcat / binフォルダーに生成されるのはなぜですか?このディレクトリをwebapps / myAppに変更するにはどうすればよいですか?

  24. 24

    React w Gatsby:フォントファイルが2回ダウンロードされることがあるのはなぜですか

  25. 25

    crontabで自動的に実行すると、このスクリプトが破損したファイルを出力するのはなぜですか?

  26. 26

    バッチファイルでnetcatを使用すると、リダイレクトされても出力がコンソールに残るのはなぜですか?

  27. 27

    Pythonなぜファイルパスがディレクトリと見なされるのですか

  28. 28

    現在表示されているディレクトリ内のファイルとサブフォルダーにシリアル番号を付けることができるファイルマネージャーはありますか?

  29. 29

    S3ディレクトリを作成すると非表示のファイルが作成されるのはなぜですか?

ホットタグ

アーカイブ