我在bash中有以下一套:
export chain_dir='~/.eris/chains/simplechain'这行得通
echo $chain_dir
~/.eris/chains/simplechain然后尝试我尝试将它与ls一起使用,我得到:
ls $chain_dir
ls: cannot access ~/.eris/chains/simplechain: No such file or directory但是,剪切和粘贴与$chain_dir中相同的目录字符串,它可以工作:
~/.eris/chains/simplechain
accounts.csv addresses.csv simplechain_full_000 simplechain_root_000 我相信我遗漏了一些东西:
发布于 2016-02-14 15:24:01
在将~交给ls之前,它不会扩展到您的家庭dir。
使用$HOME或
让eval为您做扩展
$var1='~/.config/'
$ls $(eval echo "$var1")
发布于 2016-02-14 15:20:56
在传递给~之前,不会将ls扩展到主目录路径。
我建议把它写成完整的,/home/user/,或者使用$HOME
export chain_dir="$HOME/.eris/chains/simplechain"注意在字符串周围使用双引号。
发布于 2016-02-14 16:21:59
~并不是因为引用了它而被扩展的。将它放在引号之外,bash将在执行赋值之前展开它。注意,如果有必要,您可以引用路径的其余部分,只要~在引号之外。
$ chain_dir=~'/.eris/chains/simplechain'
$ echo "$chain_dir"
/home/tbrooke/.eris/chains/simplechain(假设/home/tbrooke是您的主目录。)
https://stackoverflow.com/questions/35393277
复制相似问题