首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >传递bash变量无效

传递bash变量无效
EN

Stack Overflow用户
提问于 2016-02-14 15:09:18
回答 3查看 46关注 0票数 1

我在bash中有以下一套:

代码语言:javascript
复制
 export chain_dir='~/.eris/chains/simplechain'

这行得通

代码语言:javascript
复制
 echo $chain_dir
 ~/.eris/chains/simplechain

然后尝试我尝试将它与ls一起使用,我得到:

代码语言:javascript
复制
 ls $chain_dir
 ls: cannot access ~/.eris/chains/simplechain: No such file or directory

但是,剪切和粘贴与$chain_dir中相同的目录字符串,它可以工作:

代码语言:javascript
复制
 ~/.eris/chains/simplechain
 accounts.csv  addresses.csv  simplechain_full_000  simplechain_root_000 

我相信我遗漏了一些东西:

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-14 15:24:01

在将~交给ls之前,它不会扩展到您的家庭dir。

使用$HOME

eval为您做扩展

$var1='~/.config/'

$ls $(eval echo "$var1")

票数 0
EN

Stack Overflow用户

发布于 2016-02-14 15:20:56

在传递给~之前,不会将ls扩展到主目录路径。

我建议把它写成完整的,/home/user/,或者使用$HOME

代码语言:javascript
复制
export chain_dir="$HOME/.eris/chains/simplechain"

注意在字符串周围使用双引号。

票数 0
EN

Stack Overflow用户

发布于 2016-02-14 16:21:59

~并不是因为引用了它而被扩展的。将它放在引号之外,bash将在执行赋值之前展开它。注意,如果有必要,您可以引用路径的其余部分,只要~在引号之外。

代码语言:javascript
复制
$ chain_dir=~'/.eris/chains/simplechain'
$ echo "$chain_dir"
/home/tbrooke/.eris/chains/simplechain

(假设/home/tbrooke是您的主目录。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35393277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档