バッシュプログラミング。プログラムをダブルクリックすることとコンソールで実行することの違い

バッシュプログラミング。プログラムをダブルクリックすることとコンソールで実行することの違い

次の内容でvpn.shというスクリプトを作成しました。

#!/bin/sh

cd /etc/openvpn

sudo openvpn client.ovpn &

konsole にある場合、./vpn.sh が正常に動作します。しかし、vpn.shファイルをダブルクリックしても何も起こりません。誰もが上記の2つの方法の違いを教えてもらえますか?

答え1

私が言うことは、次のようにsudoコマンドラインで動作することです。(人がコマンドラインにパスワードを入力できるからです)しかし、グラフィック環境では動作しない可能性があります。

この場合、使用しているデスクトップ環境に応じて、またはgksudoを使用する必要があります。参考kdesudoグラフィック sudoより多くの情報を知りたいです。

答え2

使用しているファイルブラウザが.shファイルをシェルスクリプトとして実行するように設定されていないようです。端末に ./vpn.sh と入力すると、ファイルは端末でシェルスクリプトとして実行されます。ファイルをダブルクリックして同じ操作を実行しようとすると、ファイルブラウザはスクリプトを同じ方法で処理するように設定されていないため、何も起こりません。

答え3

ダブルクリックすると管理者/ルートとして実行されていますか?

使用しているコンソールで実行すると、sudoファイルがadmin / rootとして実行されていることを意味します。

関連情報