Je script shell qui commence par:`(cd X, PWD)` retourne parfois deux lignes
sdir=`dirname $0`
sdir=`(cd "$sdir/"; pwd)`
Et cela se généralement élargi (avec 'sh -h') dans
++ dirname /opt/foo/bin/bar
+ sdir=/opt/foo/bin
++ cd /opt/foo/bin/
++ pwd
+ sdir=/opt/foo/bin
mais pour un seul utilisateur à la combinaison unique de paramètres en se dilate en (note deux lignes à la valeur de résultat) sbin
++ dirname bin/foo
+ sdir=bin
++ cd bin/
++ pwd
+ sdir='/opt/foo/bin
/opt/foo/bin'
I essayé différents combinaisons mais n'a pas été en mesure de reproduire ce comportement. Avec différents paramètres d'entrée pour cet utilisateur, il a commencé à produire un résultat de ligne unique correct. Je suis nouveau à shell scripting, donc s'il vous plaît avis quand un tel (cd X; pwd)
peut renvoyer deux lignes. il a été observé sur CentOS, mais pas sûr que ce soit important. Veuillez nous conseiller
Notez que les parenthèses dans la deuxième ligne ne sont pas nécessaires - les guillemets vous donnent déjà un sous-shell et le deuxième niveau gaspille simplement de l'énergie. Une fraction minuscule d'un peu d'énergie, mais ... –