ShellをPythonで呼び出して実行するときは上手くいくが、subprocessを用いてShellの中身をPythonに直で置換して実行すると上手くいきません。
具体的には、以下のコマンドを実行させたいです。
<shellを呼び出して実行 ←上手くいく>
python3
1# [make.sh]を呼び出して実行 2import subprocess 3subprocess.run("chmod 755 /home/test/make.sh") 4subprocess.run("/home/test/make.sh",shell = True)
shell
1# [make.sh]:ユーザから入力された名前のディレクトリを作成 2read -p "Input new name:"directory 3mkdir -p /home/test/"$directory"/
上記のコードを、shellを使わず実行させたいため、pythonのコードの中に直接置換させた場合。
<Pythonの中で実行 ←上手くいかない>
python3
1# 2import subprocess 3subprocess.run("read -p "Input new name:"directory") 4subprocess.run("mkdir -p /home/test/"$directory"/")
他のLinuxコマンドはこの方法で上手くいくのですが、今回のコマンドのみ上手くいきません。。。
「subprocess.run」の他に、「subprocess.call」や「os.system」でも試してみましたが、同様の結果でした。
何がいけないのか、またどのようにすれば上手く実行できるのか、わかる方がいらっしゃいましたら、ぜひ教えていただけたら幸いです。お願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/30 00:54