
Ich erstelle test.sh, um eine Datei mit Inhalt zu lesen
item1:return1
item2:return2
...
item10:return10
test.sh-Inhalt
VAR1=$1
VAR2= `grep "^${VAR1}:" /home/path/file | awk '{print $2;}'`
echo "${VAR2}";
Lauftest
sh test.sh item1
zurückkehren
: not found test.sh:
: not found test.sh:
Wenn ich dasselbe auf Centos ausführe. return
return1
Was ist falsch am awk-Befehl?
Antwort1
Mit dem awk-Befehl ist alles in Ordnung. Ihr Problem kann test.sh
nicht gefunden werden, wie die Meldung zeigt. CentOS setzt Ihren Pfad wahrscheinlich auf die Variable PATH.
Führen Sie es wie folgt aus sh ./test.sh item1
(ich gehe davon aus, dass sich test.sh in Ihrem aktuellen Verzeichnis befindet)
Bearbeiten: Ich hätte dem Skript besser Aufmerksamkeit schenken sollen, :
das Problem liegt bei grep. Dies funktioniert
VAR1=$1
VAR2=`grep "${VAR1}\:" file | awk '{print $2}'`
echo "${VAR2}";
Da awk standardmäßig kein :
Trennzeichen erkennt, musste ich
item1: return1
item2: return2
Ich habe keine Ahnung, wie es ohne diese Änderung auf Server oder CentOS funktionieren könnte