My bash Code file.sh
:
Bash String-Verkettung produzieren seltsame Ergebnisse
username=$1
pkgpath="/home/${username}_tmp.txt"
echo $username
echo $pkgpath
nun das Skript mit dem Befehl ausführen bash file.sh abc
sollte das Ergebnis produzieren:
abc
/home/abc_tmp.txt
Aber die Ausgabe erhalte ich ist:
abc
_tmp.txtc
Kann jemand erklären, warum dieses Verhalten auftritt und wie man das gewünschte Ergebnis erzielt?
EDIT
Ich mag würde, dass pkgpath="/home/${username}"
mich aber pkgpath="${username}_tmp.txt"
_tmp.txt
(komisch) gibt mir läuft /home/abc
(gewünschte) gibt mit ganz zu schweigen.
Willst du sagen, dass am Ende ein zusätzliches Zeichen "c" angehängt wird, wenn es nicht wahrscheinlich ist? (abgesehen von der Variablen Wert nicht erweitert). Führen Sie dieses Skript in der Befehlszeile aus? Hast du das Skript zufällig in einem Windows-Editor (Notepad ++) bearbeitet? – Inian
Ich habe es einfach auf meinen Rechner kopiert und eingefügt und es funktionierte einwandfrei. – Will
Eigentlich war ich gerade dabei, mich in meinen RHEL5-Desktop einzuloggen, aber das spielte keine Rolle, da ich direkt auf dem Desktop lief und die gleichen Ergebnisse – iammrmehul