linux shell脚本快速入门

  本文里,通过对shell脚本里的变量申明、循环语句、条件判断、数据叠加的总结,能解决linux日常管理的大部分脚本

1、变量的申明:

是弱类型的语言,用name=xxx;取变量值的时候$name

 

2、条件判断:

   if[ condition]; then

    operator;

   elif[ condition]; then

    operator;

   else

    operator;

   fi

3、循环:

  while[ condition]

#condition如果是用[]取代test,则有两个[]

  do

    operator;

  done;


 

  for((i=1;i<100;i++))

  do

     operator;

  done;


 

  for var in $(seq n)

#or for var in `cat /etc/hosts`

  do

     operator;

  done;

4、使用"[]"做判断条件注意点:

  1)、每个组件之间都要用空格隔开,如果用@代替空格,则表达式的判断为@[@str1@==@str2@]@;

  2)、用'=='进行判断时,两边的必须是字符串,所以必须用""括起来,如"$name" == "want",用$name == "want"出错,两边类型不同;

  3)、test判断:

    文件侦测: test -e filename

        test -f filename

        test -d direct

 

    文件权限判断:

        test -r filename

        test -w filename

        test -x filename

 

    文档时间:

        test file1 -nt file2;  判断file1是否比file2新

        test file1 -ot file2;

        test file1 -et file2;判断两个文件是否为同一个档案,可用在hard link的判断上

 

    两整数的判断:

        test n1 -eq n2;

        test n1 -ne n2;

        test n1 -gt n2;

        test n1 -lt n2;

        test n1 -ge n2;

        test n1 -le n2;

 

 

    字符串的判断:

      test -z string;字符串是否为空为0,如果string为空,则为true;

      test -n string;字符串是否非0

      test st1 = st2;

      test st1 != st2;

 

    多重判断:

      -a:and,例子test -r file -a -x file;

      -o:

      !:test ! -x file:判断file文件是否没有可执行权限

 

   4)、[]判断可以替代test进行判断,除了2)中的字符串相等要用==;

 

   5)、let "count=$count + 1";必须有"",否则出错

5、字符运算

  i=2;

  i=$(($i*2));

6、awk:

  awk '条件类型1{动作1} 条件类型2{动作2}' filename

   

  打印file中以分号分割的第三列大于10的第一列和第4

 

  cat file| awk 'BEGIN {FS=":"} $3 > 10 {print $1 "\t" $4}}

 

7、简单的例子:

  看完了这些,你是否可以写出这样的脚本了呢:用递归的思想找出给定目录下文件大小超过给定大小文件的脚本,虽然可以用find命令操作,但是还是值得动手去做的!

posted @   成金之路  阅读(698)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示