2011-01-29 12 views
1

私はUSBスティックが接続されているときにプログラムを実行するためのポータブルソリューションを作成しようとしています。しかし、実行するための唯一の方法は、sudoを使用して、Ubuntu Linux - Maverick - コマンドラインでユーザー名/ファイルパスを見つけて引数として渡すことは可能ですか?

/usr/bin/sudo -u *username* /usr/local/bin/*program* 

しかし、私はこの解決策をポータブルにしたいのですが、入力する必要がないので、常にユーザー名を見つけることができるコマンドがありますか?私はwhoamiを使ってみましたが、うまくいきませんでした。

また、指定されたプログラムへのパスを見つけることも、ボーナスになります。

**注:私はコマンドラインからこれらのものを見つける方法を知っていますが、コマンドライン引数としてどのように見つけたらいいか分かりません。

echo I am $(whoami) and the program named ls is in $(which ls). 

あなたはbashで、その出力でコマンドを置き換える方法は次のとおりです。任意の助け

+0

私は実際にUbuntu 10.04にありますが、whoamiも私の設定にはありません。あなたが設定した環境を確認するには、プレーンな "env"を使用してください。 USERNAMEとLOGNAMEは私のためにあります。 –

答えて

1

のための事前の

おかげで、このような何かを実行してみてください。

0

最初の部分のため:

/usr/bin/sudo -u `echo $USERNAME` /usr/local/bin/program 

ない「パスを見つけること」についての確認ができますが、コマンドラインからそれを行う方法を知っていれば、 ``トリックを使用しています。

UPDATE:あなたの問題を完全には理解できていないかもしれませんが、.bashrc(など)に環境変数を設定してPATHにもディレクトリを追加することもできます。

0

お知らせ殻を伝える逆引用符は、プログラムがあなたのパスにする必要がありますもちろん、その出力

/usr/bin/sudo -u `whoami` `which program` 

で自分のコンテンツを置換します。

関連する問題