質問
--
便宜上、エイリアスを指定したコマンドがあります。コマンドを呼び出した後にいくつかの追加パラメータを指定するのに面倒です。
次の例では、コマンドが呼び出され、foo
エイリアスが呼び出されますrun
。
alias run=foo --bar --baz
bar
そしてbaz
常に存在するパラメーターなので、別名にあります。今、少なくとも必要なコマンドを呼び出したいと思います。必須パラメータその後、実行オプションenderの追加パラメータが続きます--
。
具体的に呼び出すときは、run
次のように呼び出します。
run file1 -- option1 option2
これは機能し、オプション 1 と 2 が期待どおりに渡されます。
欲しいもの
私が望むのは、エイリアスがあり、次のコマンドを実行し、エイリアスrun file1 option1 option2
ハンドルに引数の--
前または後に(エイリアス内の)位置を指定させることです。
潜在的な答え
私がここで悩んでいるのは、関係のない解決策を見つけることです。また多くのロジック。理想的には、引数1にアクセスしてから引数1+にアクセスするようなものが欲しいが、xargs
それが目的ではないようです。私もできることがいくつかありますcut
(両方ともcut -d' ' -p1
動作しますcut -d' ' -f2-
が、この文字列の切り捨てが最善の解決策ではないかもしれません)。
私はここでエレガントな解決策に耳を傾けています。
答え1
IMHOエイリアスの代わりにシェル関数を使用する方が賢いでしょう。
run() {
file="$1"
shift
foo --bar --baz "$file" -- "$@"
}