
Unixでパラメータを生成する方法
他のユーザーのセッション状態を表示するには、ユーザーIDをパラメータとして受け入れるシェルプログラムを作成する必要があります。
私の質問は「ユーザーIDをパラメータとして渡す」です。
これはバッシュのためのものです。
答え1
シェルの場合、パラメータは位置パラメータと呼ばれます。つまり、ファイル名の後に1つずつ挿入し、挿入された場所に応じて各パラメータに到達します。
位置引数0は常にスクリプトの(ファイル)名であり、与えられた引数は1から始まります.したがって、最初のパラメータを取得し$1
、2番目のパラメータを取得する$2
方法でこれを実行します。
たとえば、
% foo () { printf '%s\n' "First: "$1" and Second: "$2"" ;}
% foo spam egg
First: spam and Second: egg
ステートメントでこれを使用するには、if
最初のパラメーターのみが考慮されます$1
(他のパラメーターにも同様に適用されます)。
if [ "$1" = "foo" ]; then
## Dome something
else
## Do something else
fi
というスクリプトに入れたとしましょうfoobar.sh
。これでスクリプトを実行できます。
./foobar.sh foo
./foobar.sh bar
./foobar.sh blahblah
3つの場合の値はそれぞれ、、、$1
です。foo
bar
blahblah
答え2
heemaylの答えに対するあなたの意見から正しく推論すると、現在のユーザーを取得する方法を探しています$USER
。
この$USER
変数は現在のユーザーを文字列として返します。
#!/bin/bash
if [ "$USER" == <something else> ]; then
#do something IF the current user is equal to whatever string you compare it to
else
#do something else IF the current user is not equal to whatever string you compare it to
fi
PS:Unix SEは宿題の質問をするのに適した場所ではありません。妥当な質問に加えて、どのトピックについて質問がある場合は、先生に最初に尋ねるのが最善です。