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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值