Ubuntu 18.04下创建sh脚本失败,运行报错求助
问题根源与解决办法
哦,我一眼就看出问题所在了——你用了cat -n > test来创建脚本,这个命令会把行号也写入到文件内容里,导致脚本根本不是你想要的样子!
为什么会报错?
cat -n的作用是在输出内容时添加行号,当你执行cat -n > test并输入内容后,你的test文件实际内容是这样的:
1 #!/bin/sh 2 echo "Hello World"
当shell运行这个脚本时,会把行号1和2当成命令去执行,自然会抛出“command not found”的错误——系统当然找不到叫1或2的命令啦!
正确的解决步骤
- 先删掉有问题的脚本文件:
rm test - 重新创建脚本,这次不要加
-n参数,直接用普通的cat命令:
然后依次输入以下两行内容:cat > test
按#!/bin/sh echo "Hello World"Ctrl+D结束输入。 - 再次赋予执行权限:
chmod 755 test - 现在运行脚本就正常了:
./test
额外提醒
另外,test是shell的内置命令,直接用test作为脚本名可能会和内置命令冲突,建议把脚本改名成比如hello.sh,避免后续出现奇怪的问题。
内容的提问来源于stack exchange,提问作者Kritsos
相关产品推荐
相关产品推荐

