我是新来的bash脚本,和我只是试图让这个工作。我想要得到的是一个脚本,CD是到默认下载目录,例如:/家庭/达维德/下载和下载从那里在Ubuntu的文件。我正在获取默认的下载目录,例如:
OUTPUT=$(grep DOWNLOAD $HOME/.config/user-dirs.dirs)
DIR=$(echo $OUTPUT | cut -f 2 -d "=" | tr "\"" "\n")
工作正常。DIR就像是一个字符串:
$HOME/Downloads
当我尝试CD时会出现问题。它确实是这样的:
cd $HOME/Downloads
这将引发一个错误,而不是它应该:
cd /home/davide/Downloads
我搜索了很多,看来,我认为,应该扩大完成。我知道了通过扩大EVAL命令,但它似乎像它应该是万不得已的手段。
谢谢您的帮助!
从意见的讨论中有两个问题:
有在一个换行符$DIR
。我相信这是你原来错误的原因。我建议用不同的方法来确定$DIR
:
DIR=$(echo $OUTPUT | sed -r 's/.*="(.*)"/\1/g')
字面$HOME
在变量$DIR
可以被取代envsubst
等
DIR=$(echo $DIR | envsubst )
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句