Problem executing bash file

前端 未结 5 1508
醉话见心
醉话见心 2021-01-26 17:54

HI there!

I\'ve run into some problem while learning to combine .sh files and PHP. I\'ve create a file test.sh and in that file I call a PHP file called test.php.

<
相关标签:
5条回答
  • 2021-01-26 18:15

    Your $PATH variable may not include '.' - so the shell may not be able to find the command to run.

    As others have said, sh ./file.sh will work...

    0 讨论(0)
  • 2021-01-26 18:18

    Another option is to run it with sh (or bash, if sh on your machine isn't bash and the script uses bashims)

    sh filename.sh
    bash filename.sh
    

    This will work whether or not the file is executable or in $PATH

    0 讨论(0)
  • 2021-01-26 18:24

    Is execute bit enabled?

    chmod +x test.sh
    
    0 讨论(0)
  • 2021-01-26 18:31

    It is possible that your environment is different when launching from the Terminal and when launching via a double-click. Try executing which php and echo $PATH from the Terminal to see what the deal is.

    EDIT 1
    As others have noted, if your "command not found" is referring to the shell script and not php, then you probably forgot to include the "./" before the name of the script (i.e. ./test.sh). Also, don't forget to make it executable by invoking chmod a+x test.sh. The reason for this is that PATH does not include the current directory (i.e. "."), because doing so would be a security risk (e.g. folders with a ton of files in them including a fake "ssh" which could then intercept your password or the like).

    EDIT 2
    Also, I don't know about you, but ${0/%cli/} is evaluating to -bash from within my Terminal. Are you sure that's what you wanted it to expand to? Perhaps you should specify the exact filename.

    0 讨论(0)
  • 2021-01-26 18:32

    use ./filename.sh

    no matter if your are in the same folder or not, without giving ./ the system is searching the path variable. (/bin/, /usr/bin and so on)

    0 讨论(0)
提交回复
热议问题