GNU/Linux >> Linux Esercitazione >  >> Linux

Directory di modifica dello script Shell con variabile

La variabile contiene un ritorno a capo. Prova a dire:

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

e dovrebbe funzionare. Per rimuovere il CR dalla variabile puoi dire:

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

Quanto segue illustra il problema:

$ 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

Un modo per incontrare il problema descritto è avere una tilde (~ ) nel nome della variabile. Usa il percorso assoluto o $HOME invece variabile. Nota che usando $HOME richiederà le doppie virgolette.

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

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

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

Prova

cd "$RED_INSTANCE_NAME"

Inoltre, assicurati che il percorso abbia senso per la directory corrente in cui cd comando viene eseguito.


Linux
  1. Passare il nome del file con spazi a uno script di shell?

  2. Script di shell con funzione e parametro come variabili?

  3. Il comando Rm nello script Bash non funziona con la variabile?

  4. Cambia la directory di lavoro nella shell con uno script python

  5. Copia e sovrascrivi un file nello script della shell

Comando Cd in Linux (Cambia directory)

Shell Scripting Parte I:Introduzione agli script bash

Come memorizzare un comando Linux come variabile nello script della shell

Dove è impostata la variabile PATH in Ubuntu?

Shell =Controlla se la variabile inizia con #

Creazione di modelli con Linux in uno script Shell?