Bash Script cd即使存在也无法正常工作

时间:2016-02-25 11:20:06

标签: bash unix

我在unix中运行bash脚本。该目录存在但在我更改脚本中的目录时它不会工作。

该脚本位于:/oracle/archive.sh

我使用以下命令运行脚本:sh archive.sh

脚本:

SALES_DIR="/oracle/sales/"
cd $SALES_DIR
pwd

输出显示:

:没有这样的文件或目录:/ oracle / sales /

/ ORACLE

它清楚地表明它无法更改目录,但pwd命令正在运行。

1 个答案:

答案 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