GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Shell-Skript ändert Verzeichnis mit Variable

Ihre Variable enthält einen Wagenrücklauf. Versuchen Sie zu sagen:

cd $(echo $RED_INSTANCE_NAME | tr -d '\r')

und es sollte funktionieren. Um das CR aus der Variablen zu entfernen, können Sie sagen:

RED_INSTANCE_NAME=$(echo $RED_INSTANCE_NAME | tr -d '\r')

Folgendes würde das Problem veranschaulichen:

$ mkdir abc
$ foo=abc$'\r'
$ echo "${foo}"
abc
$ cd "${foo}"
: No such file or directory
$ echo $foo | od -x
0000000 6261 0d63 000a
0000005
$ echo $foo | tr -d '\r' | od -x
0000000 6261 0a63
0000004
$ echo $'\r' | od -x
0000000 0a0d
0000002

Eine Möglichkeit, dem beschriebenen Problem zu begegnen, besteht darin, eine Tilde (~ ) im Variablennamen. Verwenden Sie den absoluten Pfad oder $HOME stattdessen variabel. Beachten Sie, dass Sie $HOME verwenden erfordert doppelte Anführungszeichen.

# doesn't work
$ vartilde='~/'
$ cd $vartilde
-bash: cd: ~: No such file or directory

# works
$ varfullpath='/Users/recurvirostridae'
$ cd $varfullpath

# works
$ varwithhome="$HOME"
$ cd $varwithhome

Versuchen Sie es

cd "$RED_INSTANCE_NAME"

Stellen Sie außerdem sicher, dass der Pfad zum aktuellen Verzeichnis sinnvoll ist, in dem sich cd befindet Befehl ausgeführt wird.


Linux
  1. Welcher Shell-Interpreter führt ein Skript ohne Shebang aus?

  2. Dateinamen mit Leerzeichen an ein Shell-Skript übergeben?

  3. Wo wird ein Shell-Skript ausgeführt?

  4. Ändern Sie das Arbeitsverzeichnis in der Shell mit einem Python-Skript

  5. So ändern Sie ein Wort in einer Datei mit einem Linux-Shell-Skript

Cd-Befehl in Linux (Verzeichnis wechseln)

Shell-Scripting Teil I:Erste Schritte mit Bash-Scripting

So speichern Sie einen Linux-Befehl als Variable im Shell-Skript

Aktuelles Verzeichnis des Shell-Skripts?

Kopieren und überschreiben Sie eine Datei im Shell-Skript

Wo wird die PATH-Variable in Ubuntu gesetzt?