我正在尝试根据用户输入的变量创建一个目录,然后在那里保存文件。
我认为这对我来说很简单,但是当我尝试保存时,我收到错误消息“没有这样的文件或目录”。 当我点击“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
-
答案 0 :(得分:3)
检查脚本以查看是否有DOS样式行结尾(\r\n
)。如果您不确定,可以安全地在脚本上运行dos2unix
。
您在文件名中看到的?
实际上可能是该行末尾的回车符(因为Bash不将其视为空格)。
所以"$COLLECTION"dir/
不存在; "$COLLECTION"dir\r/
确实如此。
编辑: Vi通常可以很好地向您展示这些特殊字符是什么。
ls | vi -
答案 1 :(得分:1)
这段代码中唯一可能会给你一个“没有这样的文件或目录”错误的是最后一行。您的计算机上是否存在/dev/disk1
?
答案 2 :(得分:0)
当我收到错误时,我使用mkdir -p
;)