`

Solaris10中编写alias function脚本

阅读更多
solaris中用户目录下没有.bash_profile、.bashrc文件。我这里只对root用户而言。alias追加到/.profile中。此文件是新建的
function写在全局脚本/etc/profile中


vi /etc/profile

添加如下脚本


# 删除别名
function delalias()
{
  profile=/.profile

# /.profile文件中如果存在该命令别名,删除该行。输出重定向到临时文
# 件/tmp_profile。删除/.profile。tmp_profile重命名为.profile
# 因系统里的sed版本不能在处理后替换源文件。

  cd /;touch tmp_profile;tmp_f=/tmp_profile;
  if [ $# -eq 0 ];then
  usage
  fi 
  for params 
  do
    num=`grep -c "alias $params" $profile`;
    if [ "$num" != "0" ];then
    sed "/alias $params/d" $profile >$tmp_f;
    rm $profile;mv $tmp_f $profile;
    fi

# 通过alias命令得到所有别名,awk取出别名名称。grep 当前要命名的别名
# 如果有一样的,得到的结果是非空。这个条件下,unalias该别名。

    test=`alias|awk -F= '{print$1}'|awk '{print$2}'|grep "$params"`;
    if [ "$test" != "" ];then
      unalias "$params"
    else
      echo "error:unknown alias $params"
    fi
  done
}

# 简单提示
function usage()
{
  #delete alias usage
  echo "error:input unalias name.Usage:delalias aliasname [names..]"
  echo "you can unalias not only one alias at one time"
}

# 设置别名
function mkalias()
{
  profile=/.profile
  cd /;touch tmp_profile;tmp_f=/tmp_profile;
  if [[ $1 && $2 ]]
  then

# 设置前先检查是否存在该别名。
 test=`alias|awk -F= '{print$1}'|awk '{print$2}'|grep "$params"`;
 if [ "$test" != "" ];then
    delalias $1
 fi
    echo "alias $1=\"$2\"" >>$profile;
    alias $1="$2"
  else
    echo "error:function needs two parameters"
  fi
}




vi /.profile
PS1是设置root用户命令前的提示字符串

PS1='[\u@\h:$PWD]#'
export PS1
PATH=$PATH
export PATH



在终端使用函数如下
设置别名:
mkalias la 'ls -lA|more'
该命令别名会追加到/.profile文件中:alias la="ls -lA|more"

删除别名:
delalias la



参考文章:
Unix How To: Aliases and Functions

http://www.itworld.com/operating-systems/102226/unix-how-aliases-functions
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics