如何将 bash 脚本的 cat 输出分配给另一个脚本中的变量

elt*_*gre 42 shell-script cat variable

我有一个 bash 脚本,当它接受一个参数时会产生一个 cat 输出。我还有另一个 bash 脚本,它使用我想用来生成 cat 输出的参数来执行第一个 bash 脚本。如何将第一个 bash 脚本生成的 cat 输出存储在变量中?

Dal*_*ker 61

var=$( cat foo.txt )
Run Code Online (Sandbox Code Playgroud)

将存储catin 变量的输出var

var=$( ./myscript )
Run Code Online (Sandbox Code Playgroud)

将输出存储myscript在同一个变量中。

  • 像我这样的 bash 新手的快速提示,间距和非间距都很重要,请遵循确切的模式!例如`var = $( cat foo.txt )` 将不起作用 (6认同)

小智 5

使用双引号。尝试这个

var="$(cat foo.txt)"
Run Code Online (Sandbox Code Playgroud)

  • 将内容(特别是以“$”开头的内容)放入双引号中几乎从来不是一个坏主意,而且在这里也没有什么坏处。然而,在给变量赋值的情况下,它实际上没有帮助。 (4认同)
  • 当我运行此命令时,它似乎删除了所有换行符。 (2认同)
  • @K.Carpenter echo $var 会去掉换行符,但 echo "$var" 应该显示新行 (2认同)