我在unix中运行bash脚本。该目录存在但在我更改脚本中的目录时它不会工作。
该脚本位于:/oracle/archive.sh
我使用以下命令运行脚本:sh archive.sh
脚本:
SALES_DIR="/oracle/sales/"
cd $SALES_DIR
pwd
输出显示:
:没有这样的文件或目录:/ oracle / sales /
/ ORACLE
它清楚地表明它无法更改目录,但pwd命令正在运行。
答案 0 :(得分:2)
您的问题是您使用的编辑器使用CR字符保存了您的脚本(更多关于https://en.wikipedia.org/wiki/Newline的更多信息。使用tr,您已将脚本转换为仅使用Unix行尾字符(LF) ,说你从脚本中删除了\ r \ n字符。
tr -d "\r" < archive.sh > archive.new.sh
您还可以在运行时检测特殊字符
cat -ve archive.sh
所以在您的情况下,而不是将目录更改为/oracle/sales/
,您实际上是尝试cd到/oracle/sales/\r