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


29

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

Answers:


38
var=$( cat foo.txt )

将存储catin变量的输出var

var=$( ./myscript )

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


5
对于像我这样的bash新手的快速提示,空格和非空格都很重要,请遵循确切的模式!例如var = $( cat foo.txt )将无法正常工作
sojim2

@Dalker是否有foo.txt大小的限制?我有10 mb以上的数据。猫会存储整个东西吗?我想知道是否还有限制以供将来参考。
myhouse

@sojim你知道答案吗?
myhouse

1
@myhouse根据此答案,bash本身没有限制,但是限制是在底层环境上分配的内存,当然这可能会有所不同。
Dalker

3

使用双引号。尝试这个

var="$(cat foo.txt)"

3
将事物(尤其是以开头的事物$)放在双引号中几乎绝不是一个坏主意,在这里也没有什么坏处。但是,在分配给变量的情况下,它实际上没有帮助。
G-Man说'Resstate Monica''5

@ G-Man:如果该变量包含我们要保留在变量中的换行符或制表符,该怎么办?
jvriesem

@jvriesem:如果可以怎么办?你有问题吗?
G-Man说“恢复莫妮卡”

当我运行此命令时,似乎摆脱了我所有的换行符。
K. Carpenter
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.