我试图写的是Bourne shell脚本,将做到以下几点:如果文件没有在目标目录中存在Bourne shell脚本
- 读入文件名
- ,它会如果文件存在于目标目录中,则它将被移动到/垃圾文件夹
- 如果文件存在于目标目录中,但是同名文件存在/ trash文件夹,它仍然会将文件移动到/ trash目录,但会附加_bak范围离子到文件。
我对Bourne shell的使用很少,所以这里是我到目前为止的内容。任何指针或提示将不胜感激,谢谢!
#!/bin/sh
#Scriptname: Trash Utility
source_dir=~/p6_tmp
target_dir=~/trash
echo "Please enter the filename you wish to trash:"
read filename
if [ -f $source_dir $filename]
then mv "$filename" "$target_dir"
else
echo "$filename does not exist"
fi
不要读取文件名作为输入;取而代之的是文件名作为参数。 – 2014-10-09 02:58:49
你备份的东西有点荒谬。如果*另一个带有_bak扩展名的文件会怎么样? – Lucio 2014-10-09 03:00:47
'if [-f $ source_dir $ filename]'会展开为'if [-f〜/ p6_tmp SOME-FILE]'。它应该扩展到'〜/ p6_tmp/SOME-FILE'。为此,您可以尝试使用'if [-f $ {source_dir}/$ {filename}]'。 – 2014-10-09 03:08:50