gpt4 book ai didi

Linux Shell 脚本,$@ 不适用于别名

转载 作者:太空宇宙 更新时间:2023-11-04 04:52:41 25 4
gpt4 key购买 nike

这是我名为 t.sh 的脚本:

#! /bin/sh
alias hls='ls -h'
shopt -s expand_aliases
hls / # try 1
$@ # try2

当我尝试运行脚本时:

./t.sh hls /

“try 1”行运行良好,但“try 2”行不起作用,报告错误hls:找不到命令

有谁知道原因以及如何解决吗?提前致谢。

最佳答案

来自man bash:

Aliases are expanded when a command is read, not when it is executed.

另一方面,解释$@是“参数扩展”,并且与所有扩展一样,它是执行简单命令的一部分。到那时,别名扩展时间就结束了。

这将做你想要的:

eval "$@"

关于Linux Shell 脚本,$@ 不适用于别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54140100/

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