私は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関数はこのシナリオで機能しますか?私はそれについて聞いたことがありませんが、このマイナーな問題の解決策を研究するとき。
はい、関数を使用する必要があります。パラメータを追加したい場合、エイリアスは機能します。エイリアスに与えられた引数は、エイリアスプログラムに引数として渡されますが、個別のパラメータとしてであり、そこに追加されるだけではありません。説明する:
$ alias foo='echo bar'
$ foo
bar
$ foo baz
bar baz
ご覧のとおり、エコーされたのはbarbaz
ではなくbar baz
でした。既存のパラメーターに渡す値を連結したいので、次のようなものが必要になります。
function com(){ Sudo openvpn --config /path/to/my/openvpn/configs/"$@"; }
上記の行を~/.bashrc
に追加すると、準備が整います。