質問: ### 前提・実現したいこと ターミナル上でshellスクリプトを使ってpythonのプログラムを回したいです。 その過程で以下のエラーメッセージが発生しました。 ### 発生している問題・エラーメッセージ ``` python: can't open file '○○.py': [Errno 2] No such file or directory ``` ### 該当のソースコード ``` <ターミナル上> $chmod +x+r+w /Users/.../○○.sh $/Users/.../○○.sh <sh内部> #!/bin/bash ... python ○○.py $dim $batch... ``` ### 試したこと ターミナル上で chmod +x ○○.py ### 補足情報(言語/FW/ツール等のバージョンなど) python3使用
回答: シェルスクリプトはスクリプトファイルの**置いてある場所**ではなく、**実行した場所**を起点にしています。 仮に、以下のようにlsするだけのファイルを`/tmp/test.sh`として作成した場合 ``` #!/bin/sh ls ``` 以下のように、実行する場所によって結果が変わります。 ``` $ cd /tmp $ /tmp/test.sh test.sh $ cd /home/kunai $ /tmp/test.sh (/home/kunai 直下のファイルがズラズラ表示される) ``` ですので、実行するファイルもフルパスで記述した方が良いです。