Variabel Anda berisi carriage return. Coba ucapkan:
cd $(echo $RED_INSTANCE_NAME | tr -d '\r')
dan itu harus bekerja. Untuk menghapus CR dari variabel, Anda dapat mengatakan:
RED_INSTANCE_NAME=$(echo $RED_INSTANCE_NAME | tr -d '\r')
Berikut ini akan mengilustrasikan masalah tersebut:
$ 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
Salah satu cara untuk menghadapi masalah yang Anda jelaskan adalah dengan memiliki tilde (~
) dalam nama variabel. Gunakan jalur absolut atau $HOME
variabel sebagai gantinya. Perhatikan bahwa menggunakan $HOME
akan membutuhkan kutipan ganda.
# doesn't work
$ vartilde='~/'
$ cd $vartilde
-bash: cd: ~: No such file or directory
# works
$ varfullpath='/Users/recurvirostridae'
$ cd $varfullpath
# works
$ varwithhome="$HOME"
$ cd $varwithhome
Coba
cd "$RED_INSTANCE_NAME"
Juga, pastikan jalur masuk akal ke direktori saat ini di mana cd
perintah dijalankan.
Arti yang ditampilkan oleh [alternatives --config mta] adalah apa?
Dua versi python di linux. bagaimana menjadikan 2.7 sebagai default