centos使用shell脚本执行python文件报No such file or directory

1. 执行的脚本叫run_script.sh,脚本内容如下 

#!/bin/bash
source /opt/xxxx/xxxx.cfg
/opt/venv/bin/python /opt/xx/xxx/xxxx/xxxxxx.py
echo "End!"

2. 我是通过apache common-exec包下的CommandLine(java)执行的

commandline = CommandLine.parse("/bin/bash" + " " + "run_script.sh");

3. 执行后报No such file or directory

4. 脚本很简单,路径也核对过是正确的,但是使用cat命令去查看脚本文件时,发现每行结尾多了一些字符(^M$),如下

[root@xxxx xxxx]# cat -A /users/jalchu/run_script.sh 
#!/bin/bash^M$
source /opt/xxxx/xxxx.cfg^M$
/opt/venv/bin/python /opt/xxxx/xxxx/xxxx/xxxx.py^M$
echo "End!"^M$
[root@xxxx xxxx]# cd /users/jalchu/

5. 然后自己从centos重新创建了一个脚本文件,内容自己一行行敲上去,再次使用cat命令查看,发现结尾和上面不一致,如下

[root@xxxx jalchu]# cat -A /users/jalchu/run_script.sh 
#!/bin/bash$
source /opt/xxxx/xxxx.cfg$
/opt/venv/bin/python /opt/xxxx/xxxx/xxxx/xxxx.py$
echo "End!"$
[root@xxxx jalchu]# cat --help

6. 此时使用java执行新建的脚本正常

7. 原因:之前的脚本是从windows传输过去的,两边对文件格式的定义不太一样,所以报错了,具体没有细看

 

参考:https://www.cnblogs.com/zijin/p/3501912.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值