コマンドの一部としてスペースを含むBashエイリアス

コマンドの一部としてスペースを含むBashエイリアス

エイリアス自体にスペースがある bash エイリアスを作成しようとしています。

conエイリアス(エイリアスなど)が表示されるというアイデアですsudo openvpn --config /path/to/my/openvpn/configs/conこれにより、エイリアスを使用したときに読み取れるコマンドが生成されます。

つまり:`con uk.conf` == `sudo openvpn --config /path/to/my/openvpn/configs/uk.conf`

次のエイリアスを宣言できないことがわかります con ="sudo openvpn --config /path/to/my/openvpn/configs/"。この場合、bash機能は機能しますか?私はこれについて聞いたことがありませんが、この小さな問題に対する解決策を研究しています。

答え1

はい、機能を使用する必要があります。パラメータを追加したい場合は、エイリアスが機能します。エイリアスに提供されたすべての引数は、エイリアスプログラムに引数として渡されますが、別のパラメータとして、単に既存のコンテンツに追加するだけではありません。表示するには:

$ alias foo='echo bar'
$ foo
bar
$ foo baz
bar baz

bar bazご覧のとおり、yesとnoがエコーされますbarbaz。渡された値を既存のパラメータに関連付けるには、次のものが必要です。

function com(){ sudo openvpn --config /path/to/my/openvpn/configs/"$@"; }

上記の行を追加するだけ~/.bashrcです。

関連情報