如何在bashrc文件中为别名命令动态设置路径的一部分

时间:2018-11-15 07:07:14

标签: bash shell

我正在尝试使用别名命令,并且其路径的一部分不断变化。 例如:

/var/mywork/swag/wsnew/
/var/mywork/swag/ws/
/var/mywork/swag/wsold/

我的别名命令要实现的是链接

alias cws ='cd / var / mywork / swag //

因为路径中的最后一个目录一直在变化。我想自动获取别名命令中的更新。反正有吗?

我尝试过类似的

alias cws ='cd / var / mywork / swag / getenv(“ WSP”)/

因此,每当我将WSP设置为所需路径时,它都会自动使用。但这没有帮助。

2 个答案:

答案 0 :(得分:1)

与大多数别名问题一样,使用shell函数更容易解决该问题:

cws() {
    cd /var/mywork/swag/"$WSP"
}

答案 1 :(得分:0)

就像melpomene所说的那样,您最好使用一个函数,但是如果您出于某种原因想要坚持使用别名,则可以这样做

alias cws='cd /var/mywork/swag/$WSP'

但是请注意,这与使用shell函数有一点不同,后者与仅为一个命令设置变量有关:如果您编写

WSP=aaa
...
WSP=xxx
...
WSP=yyy cws

cws被定义为一个函数,它将cd标记为yyy,但是如果是别名,它将cd标记为xxx。