科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件Shell常见知识(三)

Shell常见知识(三)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文给大家介绍了一些Shell小知识,供参考学习

作者:ChinaITLab 来源:ChinaITLab 2007年9月15日

关键字: shell 知识 软件

  • 评论
  • 分享微博
  • 分享邮件

一、if 条件语句 

格式:

if 条件表达式

then #当条件为真时执行以下语句

命令列表

else #为假时执行以下语句

命令列表

fi

if 语句也可以嵌套使用

if 条件表达式1

then

if 条件表达式2

then

命令列表

else

if 条件表达式3

then

命令列表

else

命令列表

fi

fi

else

命令列表

fi

你可以进行多层嵌套 一个if语句一定要跟一个fi 表示该层条件结束否则会造成语法错误结合前面讲的 举例如下:

这里先讲一个条件语句中用到的命令test 表示测试test后面的条件是否为真

if test -f "$1"

then

lpr $1

else

if test -d "$1"

then

cd $1

lpr $1

else

echo "$1不是文件或目录"

fi

fi

以上的例子还可以改成如下所示

if test -f "$1"

then

lpr $1

elif test -d "$1" #elif 同else if

then

(cd $1;lpr $1)

else

echo "$1不是文件或目录"

fi

以上的例子不知您是否看懂是什么意思吗?

假如我们现在将这个例子保存为prfile

chmod +x prfile

执行刚才的程序

./prfile aaa

这个例子是检查你的输入的参数是否是一个文件 如果是就打印 如果是一个目录 先转目录再打印 如果即不是文件也不是目录给出提示

二、多重条件测试语句case

格式:

case 字串 in

模式) 命令列表;;

模式) 命令列表;;

....

esac

多重条件语句是以case 开始以esac结束 中间可以有多个条件列表 功能是测试字串和和里面的模式有没有匹配的,有就执行里面的命令列表 模式也可以是*号 表示任意字串,每个模式里面的最后要心;;双引号结束,否则会发生语法错误。

现举例如下:

case $1 in

*.c)

cc $1

;;

*.txt)

lpr $1

;;

*)

echo "未知的类型"

esac

假如将以上内容保存在文件abc中

chmod +x abc

执行 ./abc a.c   将会对文件a.c进行编译

执行 ./abc readme.txt 将会把文件通过打印机

假如我将以上内容改一下,你是否会知道它的执行结果?

case $1 in

*)

cc $1

;;

*.txt)

lpr $1

;;

*.c)

echo "未知的类型"

esac

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章