让alias支持位置参数
发表于 : 2012-08-14 13:26
linux下面,大家都会把常用的命令改成别名或则是函数来提高效率。
个人一直不喜欢函数,它不像别名那样一目了然,而别名不支持位置参数,这样实用性就大大折扣。
今天中午想到一种思路,比我之前采取的曲折路线要好五倍。特来分享下
举下例子吧:只要正常的写别名,带上你要的位置参数,就可以了
个人一直不喜欢函数,它不像别名那样一目了然,而别名不支持位置参数,这样实用性就大大折扣。
今天中午想到一种思路,比我之前采取的曲折路线要好五倍。特来分享下

代码: 全选
#!/bin/bash
#
# 让alias支持位置参数
#
# 在启动文件中按下面的顺序source本脚本
#
# source ~/.zsh_aliases
# source ~/bin/aliaswrapper.sh
#
# Date: 20120814 12:52
# Author: riptide
_wrapalias_shell="zsh"
[ $BASH_VERSION ] && _wrapalias_shell="bash"
alias_file=`readlink -m $HOME/.${_wrapalias_shell}_aliases`
sed 's/\(\s*alias\s*.*\)\(\s*#.*\)/\1/' $alias_file | grep -e "^\s*alias" | grep -e "\$[1-9\*]" | sed 's/\(alias\ \)\(.*\)=[\x27\x22]\(.*\)[\x27\x22]\s*$/function \2 () { \3 }/' | while read -r func ; do
[ $1 ] && echo $func
unalias `echo $func | cut -d" " -f2`
eval "$func"
done
代码: 全选
alias h="$1 --help | less"
alias ssh2="ssh -p $1 -qTfnN -D 7070 $2 "
alias nohup2="nohup $1 > /dev/null 2>&1 & "
alias xsel2=" $* | xsel -b "