我正在尝试编写脚本,我希望ls
一个目录。该路径写在一个单独的文件中,我使用source
导入该文件。当我用
#!/bin/bash
source Settings
echo $PathToLaunchers
echo "Availible launchers"
ls -f --color \$PathToLaunchers
在我的设置文件中:
PathToLaunchers="~/Games/Minecraft/Launchers"
它说
ls: cannot access $Path: No such file or directory
它应该ls
该值所在的目录。如何将ls
变量给出的目录?
答案 0 :(得分:3)
摆脱\
前面的$PathToLanuchers
。
它正在逃避导致bash不扩展变量的$
。
命令应为
ls -f --color $PathToLaunchers
您还需要删除~/Games/Minecraft/Launchers
左右的引号。这告诉bash您想要文字代字号或者如果您希望主目录用$ HOME替换它
PathToLaunchers=~/Games/Minecraft/Launchers
或
PathToLaunchers="$HOME/Games/Minecraft/Launchers"