パラメータエイリアス

パラメータエイリアス

例えば、以下のようなことができれば可能でしょうか?

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 - usernamesudo -u username -isu

もっと複雑なものが必要な場合は、エイリアスの代わりに関数を使用してください。

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スタイルのシェル(例えば、、shkshすべてのバリエーション)、、bashなどzsh)を使用しているとします。(T)cshは動作が異なります。)

おすすめ記事