【发布时间】:2011-03-17 03:30:31
【问题描述】:
我正在尝试根据用户输入的变量创建一个目录,然后将文件保存在那里。
我认为这对我来说已经足够简单了,但是当我尝试在那里保存时收到错误消息“没有这样的文件或目录”。 当我点击“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
--
【问题讨论】:
-
您的代码对我有用,尽管我在 /dev/disk1 上得到“没有这样的文件或目录”,而我的机器上没有。但是
sudo openssl md5 testfile > "$COLLECTION"dir/md5.txt工作得很好。不过,我在 ubuntu 上。 -
当您输入
ls时,您是在运行脚本的目录还是它创建的目录中? -
一般调试提示:1) 使用
bash -x查看变量的插值方式和其他有用的调试信息 2) 检查或输出脚本中每个命令后的退出代码 ($?)确保他们按照应有的方式工作 -
无法保证 $COLLECTION 以 / 结尾或具有有效字符... bash 的乐趣。 :) 鉴于您在 Mac 上,可以很容易地在 Python 中完成。
-
@lindley - 很高兴为您提供帮助。如果您已经解决了您的问题,请接受正确的答案。