shell 如何在bash中修改变量命令而不重新定义它?

webghufk  于 6个月前  发布在  Shell
关注(0)|答案(1)|浏览(43)

假设我有一个变量命令$EXPORT,它被定义为类似于

EXPORT=$(eval "export PYTHONPATH=/path/to/package1:$PYTHONPATH")

字符串
但是,我希望命令将一个新的package2而不是package1导出到$PYTHONPATH。**注意,我希望通过修改当前的$EXPORT变量而不是重新定义它来实现这一点。**我所尝试的是将字符串"/path/to/package1"替换为"/path/to/package2"

echo ${$EXPORT//"/path/to/package1"/"/path/to/package2"}


但我得到了“错误替换”错误。
那么在bash中修改变量命令的正确方法是什么呢?

rkue9o1l

rkue9o1l1#

不要将代码存储在变量中,变量用于存储数据,函数用于存储代码。参见https://mywiki.wooledge.org/BashFAQ/050
我想你可能想要这个(未经测试):

do_export() { export PYTHONPATH="${1:-/path/to/package1}:$PYTHONPATH"; }

mycmd() { ls "${1:-./}"; )

字符串
然后你可以运行do_export '/path/to/package2'来前置package2,而不是package1PYTHONPATHmycmd ..来在父目录上运行ls

相关问题