私は時々Pythonスクリプトが直接実行されず、/foo/bar.py
シェルスクリプトで実行されることがわかりました。/usr/bin/python -O /foo/bar.py $@
ネットワーク管理者はそのような例の1つですwicd
。/usr/bin/wicd-gtk
以下を開始するシェルスクリプトですwicd-client.py
。
$ cat /usr/bin/wicd-gtk
exec /usr/bin/python -O /usr/share/wicd/gtk/wicd-client.py $@
この追加ステップの目的は何ですか?
/usr/share/wicd/gtk/wicd-client.py
直接実行すると(実行可能であれば)どのような違いがありますか?
ベストアンサー1
(以下内容は純粋な推測です。)
あなたが持っているのはWicdのパッケージバージョンであり、パッケージマネージャはディストリビューションのPythonパッケージバージョンを使ってそれをテストしました。しかし、/usr/share/wicd/gtk/wicd-client.py
次のコードを使用して書かれています。
#!/usr/bin/env python
/usr/bin/env
特にPythonプログラミングを行う場合、状況は異なる場合があります。パッケージャでは、Wicd が別の Python バージョンで実行されたり、異なるバージョンのライブラリを使用して発生する問題の可能性を減らすために、これを回避できます。python
/usr/bin/python
彼らが作りたい他の準備があるかもしれません。wicd-gtk
Ubuntu 14.04には次のものがあります/usr/bin/wicd-gtk
。
#!/bin/sh
# check_firstrun()
if [ ! -d "$HOME/.wicd" ]; then
mkdir -p "$HOME/.wicd"
fi
# Make sure the user knows WHEREAREMYFILES ;-)
if [ -e "/var/lib/wicd/WHEREAREMYFILES" ] && [ ! -L "$HOME/.wicd/WHEREAREMYFILES" ]; then
ln -s "/var/lib/wicd/WHEREAREMYFILES" "$HOME/.wicd/WHEREAREMYFILES"
fi
exec /usr/bin/python -O /usr/share/wicd/gtk/wicd-client.py $@