为何我的Shell脚本在Docker容器中无法正常执行?
Docker容器中执行Shell脚本提示"not found"的解决办法
问题场景
将简单Shell脚本test.sh放入Docker容器后,通过ls命令可看到文件,more命令能查看脚本内容,但执行./test.sh时出现报错:
/bin/sh: ./test.sh: not found
当前操作用户为user,执行ls -l的输出为:
-rwxrwxrwx 1 user group 327 Mar 24 14:14 test.sh
脚本最简代码示例:
#!/bin/sh var=$1 echo $var
解决方法
方法1:通过sh命令直接调用脚本
执行以下命令即可正常运行脚本并得到预期输出:
sh test.sh testMessage
返回结果:
testMessage
方法2:修改脚本的shebang行
将脚本开头的#!/bin/bash(原脚本使用的shebang)修改为#!/bin/sh,修改后直接执行./test.sh testMessage即可正常运行。
感谢@David Maze提供的解决思路。
内容的提问来源于stack exchange,提问作者user3877654
相关产品推荐
相关产品推荐

