Creando un script de archivo de puntos

Creando un script de archivo de puntos

pregunté estopreguntaen SO y no llegué muy lejos; Aquí está la versión actual de mi script y lo que me gustaría hacer. Lo que estoy buscando son sugerencias para depurar y probar. Probablemente lo eliminaré -fnmientras trabajo más en esto, ya que simplemente estorba: tuve que mover archivos a un directorio temporal y luego regresar para que algo funcione.

#!/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;

Respuesta1

Para ampliar el comentario: las barras invertidas al final hacen que los tres lncomandos se traten como una sola línea. No quieres eso. Quieres tres líneas diferentes. Entonces, cuando hago eco de las tres líneas aquí es cómo se analizan.

$ 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

Puede ver como la salida de echotodos los comandos se enumeran en una línea. Eliminar las barras invertidas no provocará ese comportamiento. Cada comando será tratado por separado.

información relacionada