Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Run php in a bash script: error "Could not open input file"

Tags:

bash

php

I made a simple script like:

#!/bin/bash
php /var/www/mysite/script1.php
php /var/www/mysite/script2.php

When I run it as root like this:

bash update.sh

I get following errors:

Could not open input file: /var/www/mysite/script1.php
Could not open input file: /var/www/mysite/script2.php

What is wrong ? I tried with permissions 777 on my php files and all folders to access it. When I do directly php /var/www/mysite/script1.php in my command line it works fine.

like image 577
sylvain1264 Avatar asked Sep 22 '16 22:09

sylvain1264


1 Answers

When a batch file passes through some windows-compliant editors or other mishaps, it may happen that carriage return chars are appended to the end of the line (just before linefeed)

so the all the lines for instance this one:

php /var/www/mysite/script1.php

contains an invisible \r char which is interpreted as part of the argument py php => file /var/www/mysite/script1.php<invisible char> not found.

Do the following:

dos2unix update.sh > newbatchfile.sh

or

tr -d "\015" < update.sh > newbatchfile.sh

(compare file sizes, if the newbatchfile is smaller, problem was CR chars and is fixed)

like image 168
Jean-François Fabre Avatar answered Nov 17 '22 09:11

Jean-François Fabre