
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é -fn
mientras 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 ln
comandos 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 echo
todos los comandos se enumeran en una línea. Eliminar las barras invertidas no provocará ese comportamiento. Cada comando será tratado por separado.