You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过paste合并Bash变量输出且不使用临时文件?

解决paste合并变量输出的问题

问题出在你使用的paste <($dummy) <($val)写法:<()是进程替换语法,它要求括号内是可执行的命令,但你把命令输出的文本内容存到了变量里,$dummy和$val是文本而非命令,shell会把它们当作命令名去查找,自然执行失败。

正确的做法是用echo(或printf)将变量中的内容输出,把变量内容转化为进程输出后再传给paste:

paste <(echo "$dummy") <(echo "$val")

务必给变量加上双引号"$dummy"和"$val",这样能保留变量内的换行符与空格,确保paste可以按行对应合并内容。

另外建议用更易读的现代语法$()代替反引号来赋值变量:

val=$(awk -F "\"" '{print $2}' ~/.cache/wal/colors-wal-dwm.h | sed -n -e 1,3p -e 5,7p)
dummy=$(printf "dwm.normfgcolor:\ndwm.normbgcolor:\ndwm.normbordercolor:\ndwm.selfgcolor:\ndwm.selbgcolor:\ndwm.selbordercolor:")

内容的提问来源于stack exchange,提问作者Vinchy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 06:54:09