-u userオプションにユーザー名を入力する必要があるケーススクリプトがあります...このオプションに特定の種類のユーザーグループをリストするには、user変数をどのように入力する必要がありますか?助けてくれてありがとう。
#!/bin/bash
while [[ "$1" =~ ^- && ! "$1" == "--" ]]; do case $1 in
-h | --help)
echo "usage=$(basename "$0")[-h][-g][-u user][-e]
-h [show help]
-g [show only primary group, otherwise all]
-u user [show groups of specific user, otherwise logged] user
exit
;;
-g | --primary)
shift;
echo "under work"
;;
-u $user | --user)
shift;
echo "$(groups user)"
;;
esac; shift; done
if [[ "$1" == '--' ]];then
shift;
fi
ベストアンサー1
shift
「現在」最初のパラメータ($1
)が削除され、その後のすべてのパラメータが「左に移動」するので、大文字と小文字を次のように変更するだけです-u
。
-u | --user)
shift;
echo "$(groups $1)"
;;
ユーザーが-u
または後ろに指定されているとします--user
(たとえば-u my_user
)。
また、現在の2番目のケースでは、「working」とマークされたステートメントを削除する必要があることに注意してください。これはshift
、ブロックの後の「global」ディレクティブが原因で、コマンドラインの次の引数を削除するためです。shift
case