输出到文件

使用右尖括号 > 可以将一个命令的输出内容,输出到一个文件中。如:

echo "hello world" > hello.txt

此时命令 echo "hello world" 的输出是 “hello world”,这段输出会写入当前目录下的文件 hello.txt 中。

一个右尖括号,表示写入覆盖文件内容,若文件不存在,则创建文件后再写入。如:

echo "hello world 1" > hello.txt
echo "hello world 2" > hello.txt

连续执行上述两行命令,则会得到 hello.txt 其中内容是 “hello world 2”,因为第二次执行会覆盖文件内容。

使用两个右尖括号 >> 表示向文件追加内容,若文件不存在,则创建文件后再写入。

echo "hello world 1" >> hello.txt
echo "hello world 2" >> hello.txt

连续执行上述两行命令,则会得到 hello.txt 其中内容是:

hello world 1
hello world 2

第一行命令创建了文件并写入了第一行内容,第二行命令向文件追加了一行内容。

>> 两个右尖括号的追加文件内容,是会另起一行追加的,并不是完全地接在原有内容后面。

将命令结果作为其他命令的输入

使用左尖括号配合小括号,则可以将一个命令的输出作为另一个命令的输入。如下:

command_1 <(command_2)

此时 command_2 的输出内容,就会当作文件参数,给 command_1 执行。

比如,我们要用 “python3” 执行python脚本语句:print("hello.")

首先,我们用 echo 输出这个脚本语句,然后给 python3 去执行:

python3 <(echo 'print("hello.")')

上述操作是会直接输出 hello. 的。

那么用竖线 | 是不是可以呢?答案是可以的。上述命令写成下述样子是完全可以的:

echo 'print("hello.")' | python3

实际用处

第一种:将命令输出到文件,这就是赋予了bash脚本创建和写入文件的能力。
第二种:将命令结果作为其他命令的输入,这让bash脚本可以用简洁的方式处理命令参数,更方便使用。

最后编辑:2020年04月26日 ©著作权归作者所有

发表评论

正在加载 Emoji
×