【问题标题】:My shell script to symlink a file from one directory to another is broken我将文件从一个目录符号链接到另一个目录的 shell 脚本已损坏
【发布时间】:2014-02-01 11:02:36
【问题描述】:

我在 Dropbox 目录中有一个文件,我想将它符号链接到我的主/用户目录。

我正在尝试使用这样的 shell 脚本将其自动化...

db="$HOME/Dropbox/Fresh\ Install"
ln -s $db/README.md $HOME/symlinked.txt

...但是当我运行 sh provision.sh 时,我得到了错误 ln: /Users/<user>/symlinked.txt: No such file or directory

我猜这个问题与指向一个文件夹的路径有关,该文件夹的名称中有一个空格。

我尝试了不同的变体来使其工作,但无法弄清楚。

也尝试使用“命令替换”,但无法理解它与问题的关系。

感谢任何帮助完成这项工作。

注意:我使用的是 zsh,但据我所知,运行这个简单的 bash 脚本应该不是问题/冲突。

【问题讨论】:

    标签: bash shell zsh


    【解决方案1】:

    扩展变量时不处理反斜杠。您需要引用变量。

    db="$HOME/Dropbox/Fresh Install"
    ln -s "$db"/README.md $HOME/symlinked.txt
    

    一般来说,最好始终使用quote 变量,除非您知道要对值进行分词和通配符扩展。

    【讨论】:

      猜你喜欢
      • 2015-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-28
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 1970-01-01
      相关资源
      最近更新 更多