今天的课程中我们将学习对用户输出的参数进行判断。 例子:如果你说别人坏话?那就要挨打了。 故事2: 当你吃零食时,猫儿在你身边叫的时候,你听到了,然后你将手中的零食,分了一块给小猫,小猫得到零食后,就离开你了。很显然这只猫是吃贷。 下面我们拆分这个故事,并实现它。放开那只猫让你来。 这个故事里,听,分,离开是关键字 主人公听到后,做出的反应是分一点给猫,然后猫得到后就走了 2、1 read shell: read 从命令行读取一行用户输入 根据编程来看用的最多的是: read -p "你的描述" ppp 意思: 在命令行输出一个提示用户输入的等待,然后定义了变量叫ppp(名字随便取,好的习惯是,变量名要用意义,好比,西瓜为什么叫西瓜不叫土豆?因为这是常识) 然后用户输入后,将用户的输入读进变量ppp 我们接到了变量,然后就应该干嘛?对这变量使用之。 2.1.sh #!/bin/sh #code by scpman #read read -p "What's your Name: " name echo "Hi," $name echo "now Time : `date`" 在这个脚本中,我们提示用户输入名字,然后输出hi,用户输出的名字,并在脚本中输出了当前系统时间。 2、2 if 在2.1中,我们已经接到用户输入了,那你给猫一只狗,猫会吃吗?任何时候,我们都不相信用户的输入!猫有原则,给只狗就是不吃,只吃老鼠(主人公在吃的零食) 如果你给的是老鼠,猫就吃,否则,就不吃。 那就用if来了解这个事吧 语法: if …then…fi 如果给的是老鼠,就吃 if …else…fi 如果给的不是老鼠,而是别的呢 If…elif…elif…else…fi 如果给的是老鼠,或者给饼干,给别的等 if也在一些固定的表达式用来判断一些问题: 列出一些: 条件表达式 文件表达式 if [ -f file ] 如果文件存在 if [ -d … ] 如果目录存在 if [ -s file ] 如果文件存在且非空 if [ -r file ] 如果文件存在且可读 if [ -w file ] 如果文件存在且可写 if [ -x file ] 如果文件存在且可执行 整数变量表达式 if [ int1 -eq int2 ] 如果int1等于int2 if [ int1 -ne int2 ] 如果不等于 if [ int1 -ge int2 ] 如果>= if [ int1 -gt int2 ] 如果> if [ int1 -le int2 ] 如果<= if [ int1 -lt int2 ] 如果< 字符串变量表达式 If [ $a = $b ] 如果string1等于string2 字符串允许使用赋值号做等号 if [ $string1 != $string2 ] 如果string1不等于string2 if [ -n $string ] 如果string 非空(非0),返回0(true) if [ -z $string ] 如果string 为空 if [ $sting ] 如果string 非空,返回0 (和-n类似) 条件表达式引用变量要带$ ,并最好加" $变量名"(通过失败的经验得来的) 2.3 实例 1、如果给的是老鼠,猫就吃 思考:可能的情况: A如果你只是挥了下手,什么都没给 B 如果你给的不是老鼠 C 如果你给了老鼠,却扔给了别人 #!/bin/sh #code by scpman #cat's food read -p "Please input the cat's food:" food if [ -n "$food" ] then echo $food fi 要是有输入就输出,没有输入就退出,并提示用户什么都没输入。 (责任编辑:IT) |