0

我正在尝试根据用户输入的变量创建一个目录,然后将文件保存在那里。

我认为这对我来说很简单,但是当我尝试保存时收到错误消息“没有这样的文件或目录”。当我点击“ls”时,它会列出带有“?”的目录。在它之后。

我正在 Mac 终端上使用 .sh 脚本。

相关代码:

#get user input
echo "enter the collection number"
read COLLECTION
#create the directory
mkdir "$COLLECTION"dir
#calculate a checksum and save it to the above directory
sudo openssl md5 /dev/disk1 > "$COLLECTION"dir/md5.txt

--

4

3 回答 3

3

检查你的脚本,看看你是否有 DOS 风格的行尾 ( \r\n)。dos2unix如果您不确定,您可以安全地在脚本上运行。

您在文件名中看到的?实际上可能是行尾的回车(因为 Bash 不会将其视为空格)。

所以"$COLLECTION"dir/不存在;"$COLLECTION"dir\r/做。

编辑: Vi 通常可以很好地向您展示这些特殊字符是什么。

ls | vi -
于 2010-07-16T19:59:05.713 回答
1

这段代码中唯一可能给您“没有这样的文件或目录”错误的是最后一行。你/dev/disk1的机器上存在吗?

于 2010-07-16T19:55:03.023 回答
0

mkdir -p在收到该错误时使用;)

于 2010-07-16T19:55:13.170 回答