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

首个Bash脚本无法运行:接收参数输出Hello功能异常

解决Shell脚本参数输出错误的问题

嗨,我来帮你搞定这个Shell脚本的问题!你遇到的错误根源在于变量赋值的写法有误,咱们一步步拆解:

错误原因分析

你写的代码是:

$yourname=$1 echo "Hello $yourname"

Shell解析这行代码时会做两件事:

  1. 首先尝试展开$yourname,但这个变量此时还没定义,所以会被替换成空字符串,整行就变成了=Mike echo "Hello "(当你传入参数Mike时)。
  2. Shell会把=Mike当作要执行的命令,自然找不到这个命令,于是抛出=Mike: command not found的错误;后面的echo虽然会执行,但$yourname还是空的,所以只输出Hello。

正确的写法

你需要修正变量赋值的方式,有两种正确的写法:

写法一:分两行写(更清晰易读)

yourname=$1
echo "Hello $yourname"

这里要注意:变量赋值时,变量名前面不要加$,yourname=$1是正确的赋值语法,把第一个参数的值存入yourname变量,然后下一行用echo输出即可。

写法二:同一行用分号分隔

如果一定要写在同一行,需要用分号把赋值和echo命令分开:

yourname=$1; echo "Hello $yourname"

分号会告诉Shell这是两个独立的命令,先完成变量赋值,再执行echo输出。

现在保存修改后的脚本,执行bash hello.sh Mike,就能得到预期的Hello Mike输出啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:14:49