我知道这个问题已被多次询问,但我仍然找不到任何好的解决方案.因此,再次询问是否有人可以提供帮助!!
我试图在变量的帮助下更改shell脚本中的工作目录.但我每次都会得到“没有这样的文件或目录”.
#!/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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。