创建点文件脚本

创建点文件脚本

我问这个问题就这么过去了,并没有走多远;这是我的脚本的当前版本以及我想要做的事情。我正在寻找调试和测试的建议。我可能会-fn在更多地处理这个问题时删除它,因为它只是妨碍 - 必须将文件移动到临时目录中,然后再返回才能使任何内容正常工作。

#!/bin/bash

set -e

function makeLinks() {
    ln -sfn ~/Documents/Dotfiles/.bash_profile ~/.bash_profile\
    ln -sfn ~/Documents/Dotfiles/.gitconfig ~/.gitconfig\
    ln -sfn ~/Documents/Dotfiles/.gitignore_global ~/.gitignore_global
    source ~/.bash_profile;
    }

    read -rp "This may overwrite existing files. Are you sure? (y/n) " -n 1;
    echo "";
    if [[ $REPLY =~ ^[Yy]$ ]]; then
        makeLinks
    fi;

答案1

扩展注释:结尾的反斜杠导致三个ln命令被视为一行。你不想要这样。你想要三个不同的线。所以,当我回显这里的三行时,它们是如何解析的。

$ echo ln -sfn ~/Documents/Dotfiles/.bash_profile ~/.bash_profile\
>     ln -sfn ~/Documents/Dotfiles/.gitconfig ~/.gitconfig\
>     ln -sfn ~/Documents/Dotfiles/.gitignore_global ~/.gitignore_global
ln -sfn /cygdrive/d/home/prateek/Documents/Dotfiles/.bash_profile /cygdrive/d/home/prateek/.bash_profile ln -sfn /cygdrive/d/home/prateek/Documents/Dotfiles/.gitconfig /cygdrive/d/home/prateek/.gitconfig ln -sfn /cygdrive/d/home/prateek/Documents/Dotfiles/.gitignore_global /cygdrive/d/home/prateek/.gitignore_global

您可以看到所有命令的输出echo都列在一行上。删除反斜杠不会导致这种行为。每个命令将被单独处理。

相关内容