gpt4 book ai didi

linux - 带变量的 Shell 脚本更改目录

转载 作者:IT王子 更新时间:2023-10-28 23:52:11 27 4
gpt4 key购买 nike

我知道这个问题已经被问过很多次了,但我仍然找不到任何好的解决方案。因此,再次询问是否有人可以提供帮助!

我正在尝试借助变量更改 shell 脚本中的工作目录。但我每次都得到 "No such file or directory"

#!/bin/bash
echo ${RED_INSTANCE_NAME} <-- This correctly displays the directory name
cd $RED_INSTANCE_NAME <-- This line gives the error

现在,当我尝试给出实际的目录名称而不是使用变量时,shell 会毫无问题地更改目录

cd test  <-- No error

有谁知道这里的问题是什么?请帮忙!!

最佳答案

您的变量包含回车符。试着说:

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

它应该可以工作。为了从变量中删除 CR,您可以说:

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

下面可以说明这个问题:

$ 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

关于linux - 带变量的 Shell 脚本更改目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19281328/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com