我安装完一个程序后,有些网站告诉我使用 echo 命令将环境变量导出到 .bashrc 文件,而其他网站则告诉我使用 vi .bashrc 直接编辑文件。我想知道这两种方法之间的区别是什么,让我在特定情况下选择使用其中一种而不是另一种?我不确定使用 echo 是否会插入临时变量,而 vi 是否可以将其设为永久变量?
答案1
vi
是一个编辑器。它的功能与编辑器通常的功能相同:您可以在任意位置修改文件,只需移动光标即可。
修改文件echo
总是会将文本添加到结尾文件的;或完全覆盖。更改与使用 等编辑器一样永久有效vi
。
echo "foo" >.bashrc
这会将整个文件替换为一行“foo”。您可能不希望这样。
echo "foo" >>.bashrc
这将添加一个新行“foo”到最后.bashrc。虽然这有时可能很有用,但通常您希望更好地控制修改的位置,因此最好使用编辑器。
这是壳它具有所有神奇的功能:将>
命令的输出重定向到文件,并在此过程中覆盖该文件的任何旧内容;>>
类似,但它不会覆盖旧内容,只会将新内容添加到末尾。
教程echo
通常使用,因为它是一个非常简单的命令,只是 - 你可能已经猜到了 -回声它的参数。但 I/O 重定向与>
或>>
一起工作任何将输出写入标准输出通道的命令(又称标准输入输出)。
答案2
在某些情况下只echo xxx >> file
应该用来附加一行,否则可能会导致其他读取器失败(例如当使用时vim
)。例如当使用kafka-connect
将文件加载到主题中时。