我试图创建一个允许用户追加已存在的目标文件的文件副本版本。该程序有两个参数:源文件和目标文件。Bash shell程序
如果目标文件已经存在,它必须要求用户在三个选项之间进行选择:覆盖目标文件,追加目标文件或取消。
应该进行以下参数检查:
- 参数的个数必须是2
- 源文件必须是常规文件。
- 如果目标文件存在,它必须是常规文件。
任何人都可以帮助我如何完成这项任务吗?
我试图创建一个允许用户追加已存在的目标文件的文件副本版本。该程序有两个参数:源文件和目标文件。Bash shell程序
如果目标文件已经存在,它必须要求用户在三个选项之间进行选择:覆盖目标文件,追加目标文件或取消。
应该进行以下参数检查:
任何人都可以帮助我如何完成这项任务吗?
尝试回答你4个或5个问题:在未来,请向每个职位的单一问题,并试图在回答它作为所有这一切都是很容易通过谷歌回答。
如何检查how many arguments are passed到脚本
Information on "test"。您还可以使用命令man test
到RTFM
一些例子:
测试,如果它是一个普通文件(从以前的链接)返回真/假:
[-f MYFILE]
测试文件是否存在(再次从一个链接)返回真/假:
[-a MYFILE]
我认为, “内联” 的bash这里的版本是非常好的,为您的需求:
read -p "Do you want to (C)opy, (A)ppend, or (E)nd? " answer
case ${answer:0:1} in
c|C)
cp file1 file2
;;
a|A)
cat file1 >> file2
;;
*)
echo "That's not an option, yo"
;;
esac
如何复制文件(用户选择后)
cp file1 file2
如何如果用户想拷贝追加一个文件(用户做出选择后)
cat file >> file2
*指向http://stackoverflow.com/help/how-to-answer*中的“回答严重问题”标题 –
,你做'CP的资源文件destfile'。如果他们想追加,你可以执行'cat sourcefile >> destfile'。 – Barmar
我建议看看'help test'来做(a),(b)和(c)。 – Cyrus