2

誤って Bash で次のスクリプトを実行しました。

$ ls -l | > ../test.txt

そして、空のtest.txtを取得しました。

どうしたの?

4

2 に答える 2

3

null コマンド、つまり 1 つ以上のリダイレクトのみを含む単純なコマンドを実行しました。これはリダイレクトを実行しますが、他には何もしません。

>file

fileゼロバイトに切り詰める方法です。lsnull コマンドは標準入力を無視するため、出力が表示されません。POSIXはこれを未定義のままにしていると思います(実際、zsh入力すると stdin が読み取られます>file)。:(コロン)という名前の明示的なヌル コマンドがあります。null コマンドは、次のように、リダイレクトや変数の代入などの副作用のために必要な場合に便利です。

: ${FOO:="default value"}  # Assign to FOO unless it has a value already.
于 2013-01-06T09:53:39.593 に答える
0

> ../test.txt入力データにもかかわらずファイルを空にするため、サイズが 0 のファイルが作成されます。

于 2013-01-06T09:53:24.113 に答える