例えば、以下のようなことができれば可能でしょうか?
alias sd='sudo su - <parameter>'
コマンドプロンプトに以下のように書くと。
$sd parameter
パラメータとしてIDを指定する必要があります。
返品、
alias chdr='cd /dir1/dir2/dir3/<parameter>'
$chdr parameter
答え1
簡単な定義
alias sd='sudo su -'
書く
標準偏差ユーザー名
エイリアスに引数を渡すことはできませんが、エイリアスが拡張されると、次の単語がコマンドの引数になります。
代わりに使用できます(Sudo構成が実行に制限され、セキュリティ上の利点がない限り)。sudo su - username
sudo -u username -i
su
もっと複雑なものが必要な場合は、エイリアスの代わりに関数を使用してください。
chdr () {
cd "/dir1/dir2/dir3/$1"
}
関数に引数を渡すことができます。関数定義では、"$1"
最初のパラメータ、2番目のパラメータなどに置き換えられます"$2"
。忘れないで変数拡張の周囲に二重引用符を追加する。
この場合は、シェルがCDPATH
この機能をサポートしているかどうかを確認します(シェルのマニュアルを確認してください)。
どのsudo
ユースケースでも、ユーザー名以外に引数が渡されていない場合はログインシェルを実行するか、さらに引数が渡された場合は指定されたコマンドを実行するこの関数を好むことができます。$#
引数の数に置き換えられ、"$@"
すべての引数は変更されずに渡されます。
sd () {
if [ $# -eq 1 ]; then
sudo -i -u "$1"
else
sudo -u "$@"
fi
}
(私はあなたがBourneスタイルのシェル(例えば、、sh
(ksh
すべてのバリエーション)、、bash
などzsh
)を使用しているとします。(T)cshは動作が異なります。)
答え2
この試み:alias sd='sudo su - $1'