読者です 読者をやめる 読者になる 読者になる

仙豆のレシピ

ちょっとしたことでも書いていく姿勢で

ubuntu上のpythonでechoの-eオプションを実行させられなかった

前のやつubuntuなマシンで動かそうと思ったら動かなくて原因探った。

前のやつというのはGUI無い環境でもターミナル内に画像を表示するよってやつで、-eオプションつけたechoをpythonから呼んでいた。

なんか画像表示されないなーと思ったら、スクリプトの最後の

    subprocess.call(code,shell=True)

の部分に問題があった。

どうやらsubprocess.call(code,shell=True)は

sh -c "code"

と同義らしく、確かにコマンドラインでsh -c "echo -e a\tb"みたいなことしてもうまくいかない。

結局ubuntuでは/bin/sh -> dash になってて、dashではechoの-eオプションが使えないのではないか、それが原因ではなかろうかと推測された。

というわけで該当部分を

    subprocess.call(code.split(' '))

に修正したら治った。

…この辺まったく知らないしなんとかしなきゃならんなあ