Ubuntu系统Vim中运行Bash脚本报错:cso命令未找到求助
解决Bash脚本运行时的
cso: command not found错误(错误码127) 咱们来一步步排查你遇到的问题,错误码127在Bash里的核心含义是Shell找不到要执行的命令,结合你的错误提示和脚本内容,主要有以下几种可能的原因和解决办法:
原因1:脚本运行方式错误(最常见)
如果你把脚本命名成了cso,然后直接在终端输入cso试图运行它,而当前目录不在系统的PATH环境变量里,Shell会把cso当成系统命令去查找,自然找不到,就会抛出这个错误。
解决办法:
- 首先给脚本添加执行权限(必须步骤,否则会提示权限不足):
chmod +x 你的脚本文件名.sh - 然后用相对路径运行脚本(比如脚本在当前目录,就用
./开头):./你的脚本文件名.sh - 或者直接用Bash命令调用脚本(不需要执行权限):
bash 你的脚本文件名.sh
原因2:脚本内容不小心写错了
你提到最后一行的echo只是测试用,但如果不小心删掉了echo,写成了直接执行变量:
$com $opt $sf $td
那当你输入的第一个参数(也就是$com的值)是cso时,Shell会尝试执行cso这个命令,而系统里没有这个命令,就会触发错误。
解决办法:
打开你的脚本(用Vim:vim 你的脚本文件名.sh),检查最后一行,确保是:
echo "Hello $com $opt $sf $td"
如果确实漏了echo,补回去就行。
原因3:输入参数时的误操作
如果脚本运行到read等待输入时,你不小心单独输入了cso并回车,之后又误输入了一次cso,这时候Shell会把第二次输入的cso当成独立命令执行,导致报错。不过这种情况概率比较低。
解决办法:
运行脚本后,按照提示一次性输入完整的四个参数,比如:
cp -r myfile.txt /home/user/backup
然后回车,就能正常看到测试的echo输出了。
给你一个完整的正确操作流程,确保万无一失:
- 用Vim编写脚本并保存为
file_operation.sh(名字随便,尽量别和系统命令重名) - 执行命令添加权限:
chmod +x file_operation.sh - 运行脚本:
./file_operation.sh - 输入完整参数(比如
mv -i test.log ~/logs),回车后就能看到测试输出啦。
内容的提问来源于stack exchange,提问作者Serae
相关产品推荐
相关产品推荐

