Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在用 bash 编写一个脚本,我希望它执行一个命令并分别处理每一行。例如:
LINES=$(df) echo $LINES
它将返回所有用空格转换新行的输出。
例子:
如果输出应该是:
1 2 3
然后我会得到
如何将命令的输出放入一个变量中,允许新行仍然是新行,所以当我打印变量时,我会得到正确的输出?
在大多数情况下,通常在 bash$v中是自找麻烦。几乎总是你真正的意思是"$v"双引号:
$v
"$v"
LINES="$(df)" echo "$LINES"
不,它不会。唯一的$(something)带尾换行符。
$(something)
echo 参数的扩展在空格上拆分,然后 echo 将单独的参数与空格连接起来。要保留空格,您需要再次引用:
echo "$LINES"
请注意,作业不需要引用;扩展的结果在分配给变量和在参数中不是分词的case。但它可以被引用,而且更容易学会总是把引号放进去。
case