导出内部别名在Bash中不工作



我正在尝试这样做。但是它不工作。

$ alias setroot="export ROOT=$1; export PATH=$ROOT/bin:$PATH"
$ setroot /path/to/root
bash: export: `/path/to/root': not a valid identifier

谁能指出,这里出了什么问题?为了澄清,我的环境中也需要ROOT。

别名被替换,$1为空,因为您的交互式shell启动时没有参数,并且在定义别名时扩展了所有变量$1,$ROOT$PATH,因为您使用了双引号。所以:

setroot /path/to/root

:

export ROOT=; export PATH=<content_of_ROOT>/bin:<content_of_PATH> /path/to/root

第二个export的第二个参数是无效标识符——/path/to/root包含/,变量不能包含/content_of_ROOT是在定义别名时ROOT的值,而不是在使用别名时。

使用函数。使用shellcheck检查脚本

相关内容

  • 没有找到相关文章

最新更新