別のパラメーターを使用して同じコマンドを再実行してください。

別のパラメーターを使用して同じコマンドを再実行してください。

次のコマンドを実行できることを知っています。

ls Some{File,Folder}

以下を実行するのと同じです。

ls SomeFile SomeFolder

(私も同様の用途によく使用しますmv place_{a,b}

しかし、次のタスクを実行する別のショートカットがあるかどうか疑問に思います。

run-command --a --whole --lot --of --flags parameter a; \
     run-command --a --whole --lot --of --flags parameter b

run-command --a --whole --lot --of --flags parameter {a,b}入力やそれに似たものが必要です。

答え1

bashGNUなどを使用しているとします。

おそらくforサイクルですか?

for x in a b
do
    run-command --a --whole --lot --of --flags parameter $x
done

一行で書くこともできます。 for x in a b; do run-command --a --whole --lot --of --flags parameter $x ; done

答え2

スクリプトを作成せずにコマンドラインから簡単に実行したい場合は、このxargsコマンドが適している可能性があります。

xargsは標準入力から複数の項目を取得し、必要に応じて複数回実行できるコマンドの引数として使用します。

以下を試してください。

echo -n parameter a,parameter b | xargs -n 1 -d , run-command --a --whole --lot --of --flags

-n末尾の改行印刷を防ぐために、Echoにフラグを付けます(引数を渡すときにいくつかのコマンドで問題が発生します)。

この例では、実行したい置換をxargsに提供するだけです。

この-n 1フラグは、xargsが実行ごとに1つの引数のみを使用するように指示します。

この-d ,フラグは、xargs に、実行される引数の間の区切り文字として入力で「,」を検索するように指示します。 (パラメータに「、」がある場合は別のものに変更する必要があります。パラメータにスペースがない場合は、このフラグを完全に省略できます。)

詳細についてはを参照してくださいman xargs

答え3

最後に、パラメータの変更を制限しない関数を使用することもできます。

runcom() { run-command --a --whole --lot --of --flags parameter "$1" ; }

runcom a
runcom b

答え4

aliasBashには次のコマンドがあります。

$ alias shotcommand='run-command --a --whole --lot --of --flags parameter'

使用法は次のとおりです。$ shotcommand a

関連情報