Mon script bash obtient deux arguments avec des dossiers (qui existent et tout).
Dans le premier, je veux créer un lien vers le second p>
Supposons que j'ai les dossiers / home / mat / a et / home / mat / b, j'appelle le script comme ceci: p>
ln -s $2 $1/link
3 Réponses :
#!/bin/sh cd $2 ln -s "`pwd`" $1/link
Il échoue, à la recherche de 1 $ / link à l'intérieur de 2 $ ... en ce moment, j'essaie surtout en utilisant uniquement des chemins relatifs pour les deux arguments ...
Avez-vous des noms de fichiers avec des espaces en eux? Cela pourrait expliquer pourquoi cela ne fonctionne pas sans une bonne citation (comme illustré par Dennis Williamson).
Donner cette essayer:
cd "$2" dir=$(pwd) cd - ln -s "$dir" "$1/link"
Voici une autre mignon doublure one-liner:
Vous pouvez éviter les échappés maladroits en utilisant $ () code> au lieu de backticks: ln -s "$ (CD" $ (DIRNAME "$ 2") "; € 2 $ (Name" $ ")" "1 $ / lien" code>