boo*_*ull 12 shell bash parameter alias function
我正在尝试创建一个 bash 别名,其中别名本身有一个空格。
这个想法是别名(即con)代表sudo openvpn --config /path/to/my/openvpn/configs/. 当使用con别名时,这会产生可读的命令。
IE: `con uk.conf` == `sudo openvpn --config /path/to/my/openvpn/configs/uk.conf`
我明白,我不能宣布这样的别名:
con ="sudo openvpn --config /path/to/my/openvpn/configs/"。bash 函数会在这种情况下工作吗?我从来没有听说过,但是在研究这个小问题的解决方案时。
ter*_*don 13
是的,您将需要使用一个函数。如果您想添加参数,别名将起作用,给别名的任何参数都作为参数传递给别名程序,但作为单独的参数,而不是简单地附加到那里的内容。为了显示:
$ alias foo='echo bar'
$ foo
bar
$ foo baz
bar baz
Run Code Online (Sandbox Code Playgroud)
如您所见,回显的是bar baz而不是barbaz。由于您想连接传递给现有参数的值,因此您需要以下内容:
function com(){ sudo openvpn --config /path/to/my/openvpn/configs/"$@"; }
Run Code Online (Sandbox Code Playgroud)
将上面的行添加到您的~/.bashrc,您就可以开始了。