リダイレクト:余分な単語はどのようにしてファイルに取り込まれましたか。


5

スクリプトをテストしていて、テキストが少し入った小さなファイルを作成したいので、次のように入力してファイル名のスペースをエスケープするのを忘れました。

echo "bob">other name

私がしたとき ls、それはファイル "other"を示し、そして私がしたとき cat other内容は次のようになりました。

bob name

"name"はどのようにしてファイルに取り込まれましたか? コマンドのどこにでもリダイレクトを入れることができるということを私はどこかで見ました。実際、私はこれをテストしたところです。

echo >other Some text in a file

「ファイル内のテキスト」は「その他」の内容です。

この機能の目的は何ですか?

もちろん、元々、次のように入力してください。

echo "bob">other\ name

回答:


13

これがbashリダイレクトの仕組みです。

これを書く:

echo "bob">other name

これと同等です:

echo "bob" name >other

リダイレクトは、行のどこにでも表示できます。シェブロン( > ) "other"にのみ適用されます。

これにより、人々は自分たちのコマンドをどのように構成したいかを柔軟に選択できます。もっと明確に見える場合は、次のようにします。

>file.txt echo "one" "two" "three"

それはスクリプトやコマンドを書く人次第です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.