GNU/Linux >> Tutoriales Linux >  >> Linux

Shell script cambia de directorio con variable

Su variable contiene un retorno de carro. Intenta decir:

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

y debería funcionar. Para quitar el CR de la variable puedes decir:

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

Lo siguiente ilustraría el 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

Una forma de encontrar su problema descrito es tener una tilde (~ ) en el nombre de la variable. Usa la ruta absoluta o $HOME variable en su lugar. Tenga en cuenta que usar $HOME requerirá comillas dobles.

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

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

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

Prueba

cd "$RED_INSTANCE_NAME"

Además, asegúrese de que la ruta tenga sentido para el directorio actual donde cd se ejecuta el comando.


Linux
  1. ¿Script de shell con función y parámetro como variables?

  2. ¿Desde dónde se ejecuta un script de Shell?

  3. ¿Cómo almacenar un comando en una variable en un script de shell?

  4. Shell script directorio actual?

  5. ¿Dónde está configurada la variable PATH en Ubuntu?

Comando Cd en Linux (Cambiar Directorio)

Shell Scripting Parte I:Primeros pasos con bash scripting

Cómo almacenar un comando de Linux como una variable en el script de Shell

Ejecute un script de shell en el shell actual con permiso sudo

Shell =Comprobar si la variable comienza con #

¿Plantillas con Linux en un script de Shell?