gpt4 book ai didi

linux - 定义每次使用时要评估的 bash 变量

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:22:02 24 4
gpt4 key购买 nike

我想为 bash 定义一个变量,每次使用它时都会对其求值。

我的目标是定义两个变量:

A=/home/userA
B=$A/my_file

因此,每当我更新 A 时,B 都会更新为 A 的新值我知道如何在提示变量中执行此操作,但是,有没有办法对常规变量执行此操作?

最佳答案

如果你有 Bash 4.4 或更新版本,你可以(ab)使用 ${<i>parameter</i>@P} parameter expansion , 它扩展了 parameter 就好像它是一个提示字符串:

$ A='/home/userA'
$ B='$A/my_file' # Single quotes to suppress expansion
$ echo "${B@P}"
/home/userA/my_file
$ A='/other/path'
$ echo "${B@P}"
/other/path/my_file

但是,正如评论中指出的那样,使用函数更简单、更便携:

$ appendfile() { printf '%s/%s\n' "$1" 'my_file'; }
$ A='/home/user'
$ B=$(appendfile "$A")
$ echo "$B"
/home/user/my_file
$ A='/other/path'
$ B=$(appendfile "$A")
$ echo "$B"
/other/path/my_file

关于linux - 定义每次使用时要评估的 bash 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54225526/

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