Skip to content
On this page

使用Alias命令接收参数

因为实习的缘故,系统得学习了一下shell命令,在练习时,因为每次新建脚本后需要添加执行权限还要用到

shell
touch xxx.sh
chmod +x xxx.sh # chmod 777 xxx.sh

比较麻烦,所以想把上面的命令别名成

shell
alias touchs="touch $1;chmod +x $1;"

但是执行后,再次执行alias查看更改,发现变成了

shell
alias touchs='touch ;chmod +x ;'

以为是双引号的缘故(双引号字符串进行转义且转换参数),换成了

shell
alias touchs='touch $1;chmod +x $1;'

但是还是不对,查阅后发现需要使用定义函数的方式曲线救国,这样执行定义的touchs的时候就是在执行一个函数了,那么参数就被传到了函数中(注意函数的参数也是从$1开始的,$0是函数名。

所以正确的方法应该是

shell
alias touchs='touch_script(){ touch $1;chmod +x $1;};touch_script'

TIP

永久更改需要在~/.bashrc中添加上面的语句。