我正在尝试这样做。但是它不工作。
$ 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检查脚本