在bash脚本中运行php:错误"无法打开输入文件"

syl*_*264 11 php bash

我制作了一个简单的脚本:

#!/bin/bash
php /var/www/mysite/script1.php
php /var/www/mysite/script2.php
Run Code Online (Sandbox Code Playgroud)

当我以root身份运行它时:

bash update.sh
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Could not open input file: /var/www/mysite/script1.php
Could not open input file: /var/www/mysite/script2.php
Run Code Online (Sandbox Code Playgroud)

怎么了 ?我在我的php文件和所有文件夹上尝试使用权限777来访问它.当我在命令行中直接使用php /var/www/mysite/script1.php时,它可以正常工作.

Jea*_*bre 6

当批处理文件通过一些符合Windows的编辑器或其他意外时,可能会发生回车符附加到行的末尾(就在换行之前)

所以所有的行例如这一行:

php /var/www/mysite/script1.php
Run Code Online (Sandbox Code Playgroud)

包含一个不可见的\rchar,它被解释为参数py php=> file /var/www/mysite/script1.php<invisible char>not found的一部分.

请执行下列操作:

dos2unix update.sh > newbatchfile.sh
Run Code Online (Sandbox Code Playgroud)

要么

tr -d "\015" < update.sh > newbatchfile.sh
Run Code Online (Sandbox Code Playgroud)

(比较文件大小,如果newbatchfile较小,问题是CR字符并且是固定的)