当前位置:  开发笔记 > 编程语言 > 正文

别名在脚本中丢失

如何解决《别名在脚本中丢失》经验,为你挑选了1个好方法。

我想在GNU最新别名gdatedate当程序在Mac上运行

#!/bin/bash
if [[ $(uname) -eq 'Darwin' ]]; then
    alias date="gdate"
    echo 'you are on a mac!'
    type date
fi
# rest of the program

鉴于此代码,如果我直接在终端上运行int它打印:

you are on a mac!
date is an alias for gdate

但是,如果我像./test.sh打印一样运行脚本本身:

you are on a mac!
date is /bin/date

为什么不从脚本中应用别名?



1> chepner..:

默认情况下,别名不会在非交互式shell中展开.请改用功能.

if [[ $(name) -eq Darwin ]]; then
   date () { gdate "$@"; }
   echo 'you are on a mac!'
   type date
fi

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有