“cat”命令可以作为管道目标吗?

“cat”命令可以作为管道目标吗?

很久很久以前,我曾经进行过 bash 编程,但在一段时间后,我转向了其他编程语言。我的工作要求我查看 bash 脚本,我发现了我试图理解的这段代码。

for var in $(echo $ENV_VARS | cat my_env_vars.txt );导出 $var 完成

我似乎找不到太多“cat”命令作为管道目标的示例,因此我无法理解原作者将 echo 命令的结果通过管道传输到“cat”命令的输出上的意图。有人可以帮忙解释一下发生了什么事吗?

我确实尝试通过设置 ENV_VARS 来运行代码,但我发现只有“my_env_vars.txt”文件的内容在“for”循环内进行评估。那么在这里管道“echo”的结果有什么用呢?

答案1

尝试:

echo $ENV_VARS | cat - my_env_vars.txt

as第-一个参数指示cat将其标准输入读取为第一个文件(并将数据写入其标准输出,然后按照命令中出现的顺序读取命令行上的任何文件名(并将其写入其标准输出)线。

参数也-可以出现在之后。 my_env_vars.txt(但是,虽然在命令行上多次命名文件可以cat多次打开和读取该文件,但对于标准输入 ( ) 来说并非如此-

相关内容