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

如何将cut命令的输出结果赋值给Bash变量?

解决bash变量赋值与管道结合的错误

你的错误源于bash对命令的解析逻辑:当你执行myVar=echo "After-u-math-how-however" | cut -f1,2 -d'-'时,bash会把myVar=echo视为给后续命令临时设置环境变量,随后把"After-u-math-how-however"当成独立的可执行命令来运行——这显然不存在,所以报错。

要将命令输出赋值给变量,必须使用命令替换,把整个管道命令包裹在$()(推荐,可读性强且支持嵌套)或反引号`中,正确写法如下:

方法一(推荐)

myVar=$(echo "After-u-math-how-however" | cut -f1,2 -d'-')

方法二(旧写法)

myVar=`echo "After-u-math-how-however" | cut -f1,2 -d'-'`

执行完赋值后,可通过echo $myVar验证,会输出预期的After-u。

另外,也可以用Here字符串简化命令,省去echo:

myVar=$(cut -f1,2 -d'-' <<< "After-u-math-how-however")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 18:22:35