gpt4 book ai didi

bash - 别名在脚本中丢失

转载 作者:行者123 更新时间:2023-11-29 09:17:59 25 4
gpt4 key购买 nike

当程序在 mac 上运行时,我想将 gnu-date gdate 别名为 date

#!/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

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

最佳答案

默认情况下,别名不会在非交互式 shell 中扩展。请改用函数。

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

关于bash - 别名在脚本中丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41764411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com