【发布时间】:2015-04-20 06:25:43
【问题描述】:
您好,我在理解一个方面遇到了很多麻烦,我应该做什么以及两个我应该如何实现这一点。首先,我将逐步说明我的程序应该执行的过程。
1) 脚本在 Korn shell 中执行。
2) 将shell脚本文件命名为asg6s。
3) asg6s 文件是可执行文件,并且只接受来自命令行的两个参数。
4) asg6s 文件接受任意两个命名文件作为文本文件的两个参数。
5) 创建一个文件,其中包含“Message Holder”作为文件中的文本。该文件作为第一个参数在命令行中输入。
6) 第二个参数是一个文件,无论您选择什么名称 接受来自 asg6s 文件的输出。
7) 命令行必须具有以下内容:asg6s [输入文件名] [输出文件名] 才能进行任何处理。输入文件必须包含上面 5) 中详述的单词。输出文件是在命令行执行时创建的,而不是之前。
8) 脚本首先检查命令行上是否有两个参数。如果命令行没有两个参数,则显示一条错误消息,其中包含命令行上的模式建议并退出脚本。
9) 如果满足 8) 中的条件,则脚本必须独立检查由第一个参数命名的文件是否存在并包含一些文本。如果命令行的第一个参数不是存在且包含一些文本的文件,则显示包含文件名的错误消息并退出脚本。
好的,就我所得到的代码而言,以下是:
#!/bin/ksh
#Reroute to directory of used files
cd /class
#Make the asg6s accept only two arguements
if [[ $# -ne 2 ]];then
print "Does not equal two arguments"
exit
fi
#Creates file containing Message Holder
cat message
Message Holder
#File that accepts the output of file message
cp message message1
#Determine if first argument is empty or null
if [ -z "$1"]
echo "File does not exist"
fi
显然我错过了一些东西。我认为主要是我没有将文件设置为只接受来自命令行的两个参数。任何帮助,将不胜感激。即使它是帮助我理解我不理解的东西的链接。谢谢
【问题讨论】:
标签: unix command-line-arguments ksh