質問: ### 前提・実現したいこと シェルスクリプトから自作のpythonコードを実行しようと思い当プログラムを書きました. そのpythonコードは,実行するとターミナルからの入力を受付けそれに応じた動作をするという対話的なものなので, expect文を用いて実行を自動化しようとしました. しかし,下記のように "expect -c"内で"spawn"を用いてコンパイルを実行しようとすると, フルパスで指定しているにもかかわらず「開けない.そんなファイルはない」というようなことを言われます. アクセス権の問題かと思い,当pythonファイルのパーミッションを全員読み書き実行可能に変更しましたが同様でした. 何がおかしいのでしょうか? なお,件のシェルスクリプトとpythonファイルを同じディレクトリに入れ,単に"spawn python makeGraph.py"とすると作動します. ### 発生している問題・エラーメッセージ ``` python: can't open file '~/Documents/Practices/PythonWorkspace/PycharmProjects/Production/src/makeGraph.py': [Errno 2] No such file or directory ``` ### 該当のソースコード expect -c " spawn python ~/Documents/Practices/PythonWorkspace/PycharmProjects/Production/src/makeGraph.py [中略] interact " ``` シェルスクリプト ```
回答: `~`をホームディレクトリに置換するのはシェル(Bash)の機能です。引用符で囲むとその置換はされませんので、`~`を使わずにフルパスで書いてください。