
Ich möchte ein Skript schreiben, das den aktuellen Ordnernamen übernimmt und am Ende das Suffix _default hinzufügt.
Mein Skript sieht bisher so aus:
#!/usr/bin/env bash
baseDir=pwd | awk -F/ '{print $NF}'
networkName=$(baseDir)$('_default')
echo $networkName
Wenn ich dies ausführe, erhalte ich die folgenden Fehler:
codebrews@mymachine:/docker-local$ ./test.sh
./test.sh: line 3: baseDir: command not found
./test.sh: line 3: _default: command not found
Ich bin sicher, dass ich etwas Einfaches vermassle, aber ich kann es nicht sehen. Danke.
BEARBEITEN 1
Ich habe auch Folgendes versucht:
#!/usr/bin/env bash
baseDir=pwd | awk -F/ '{print $NF}'
networkName=$($baseDir)_default
echo $networkName
Aber das kehrt nur zurück
_Standard
Ich sehe jetzt, dass das Problem darin besteht, dass „basedDir“ leer ist. Wenn ich „pwd | awk -F/ '{print $NF}'“ auf der Kommandozeile ausführe, funktioniert es. Aber in dieser Skriptdatei funktioniert es offensichtlich nicht.
Antwort1
baseDir=pwd | awk -F/ '{print $NF}'
Dieser Befehl weist die Variable baseDir
der Zeichenfolge zu pwd
und leitet dann die Ausgabe dieser Zuweisung (also nichts) an weiter awk
, was nichts bewirkt.
networkName=$(baseDir)$('_default')
Dieser Befehl versucht, die Variable networkName
der Ausgabe des Befehls baseDir
(die nicht existiert, daher der erste Fehler) zuzuweisen, verknüpft mit der Ausgabe des Befehls '_default')
(die nicht existiert, daher der zweite Fehler).
echo $networkName
Da der vorherige Befehl nicht funktionierte, würde dies nichts anderes als die abschließende neue Zeile ausgeben.
Ich glaube, Sie suchen Folgendes:
#!/usr/bin/env bash
baseDir="$(pwd | awk -F/ '{print $NF}')"
networkName="${baseDir}_default"
echo "$networkName"