当前位置:   article > 正文

学习笔记(linux高级编程)1

学习笔记(linux高级编程)1

shell编程 对比 C编程

shell编程: (1.执行过程,2.开发效率,3.执行效率,4.移植性) 

    解释型语言 

         边翻译边执行 (ls cp(程序))

         擅长文件处理,操作系统管理

         开发效率高  cp 1 2

         执行效率低  

         移植性好

    .c

    编译型语言

         先编译再执行   //gcc 编译 (.c ---> 机器代码)

         擅长数据计算和数据处理

         开发效率低

         执行效率高

        

         移植性差

shell脚本编写    

    1.shell脚本编写流程:

         1.vim XX.sh  #!/bin/bash     //编辑文件

         2.编写脚本

         3.chmod +x XX.sh             //给执行权限

         4. ./XX.sh                   //执行文件

     注意:

          #    --- 第一行 不要写注释 这些  

文件类型 所属用户权限  所属组  其他人     

-           rw-        rw-     r--

chmod +x  1.sh

chmod  0777 01.sh 

env //引用环境变量:

    $PATH (加$应用路径里的值)  

echo (打印)    

    echo $PATH(输出对应路径里的值)

    键(key)值(value)对 

    KEY=value

main(int argc,char* argv[]) // a.out 1  2

        @argc --- 命令行参数的个数

        @argv --- 命令行参数对应的数组的首地址

             $0:脚本文件名

             $1:传入脚本的第一个参数

             $2:传入脚本的第二个参数

             ...

             $9:

${10}:

$#:传入参数的个数

$?:上一句shell命令执行的结果

0 表示成功 其它数为错误编码

$$:当前shell的PID


ps aux | grep 2389 查进程

自定义的变量:

        注意:

            (1).shell中数据是弱类型,默认识别为字符串类型        

            (2).不需要,先定义

            (3).名字规则 ,遵循C的命名规则。 //(不要带空格)   

                不能带 $符号

                  [注]

                   给值的时候 等号两边不能有空格

                   var=123 (√)

                   var = 123 (x)

shell中的引号

           "":打印字符串,遇到$变量($name)则打印变量中的值(name变量的值)

           '':打印字符串,遇到$变量依然打印 $变量 (原样输出)

` `(反单引号,波浪号下面):将中间的字符串按照命令打印(命令置换)

read

     read从标准输入读入一行, 并赋值给后面的变量,其语法为:

   .   read  var

     把读入的数据全部赋给var

   .   read  var1  var2  var3

     把读入行中的第一个单词(word)赋给var1, 第二个单词赋给var2, ……把其余所有的词赋给最后一个变量.如果执行read语句时标准输入无数据, 则程序在此停留等侯, 直到数据的到来或被终止运行。

read  var1

read  var2

输完一个要敲回车才输入下一个

运算:

expr :算术运算命令expr主要用于进行简单的整数运算,

#注意:

     (1).符号两边要有空格

     (2).注意对应的运算符是否需要转义

包括:

    加(+)、减(-)、乘(\*)、整除(/)和求模(%)等操作。

    例如:

  $ expr  12  +  5  \*  3

  27

  $ num=9

  $ sum=`expr  $num  \*  6 `

  $ echo  $sum

  54

分支语句

if 条件   //((表达式))或[ 表达式 ]

         then

             语句1

         else

             语句2

         Fi

//多行注释

:<<!

...

!

//多分支

    if 条件表达式

    then

        语句

    elif [条件表达式]  test里 -o或 -a与

    then

        语句

    elif [条件表达式]

    then

       语句

    else

       语句

    Fi

man test

    -a and  &&

    -o or  ||

    test -eq      相等  

    test 10 -eq $i     [ $i -eq 10 ]      if( a == 10)

             -ne      不相等

             -gt      大于

             -lt      小于

             -ge      大于等于

             -le 小于等于

             [ $i ge 0  -a $i lt 59 ]

  //命令的写法

  test 10 -eq $i

  //中括号

  [ $i -eq 10 ]  //注意: 中括号里面,前后都要有空格。

  //C风格

  (( c语言风格的表达式 ))

test

         -b           块设备文件       block      test -b /dev/usb0 --- 硬盘

         -c           字符设备文件     char                         --- 鼠标,键盘

         -d           目录文件         directory

         -f           普通文件         regular

         -L           链接文件         link     类似 windows下的快捷方式  ln -s 源 目标

         -S           套接字文件       socket     (本地socket/网络socket )

         -p           管道文件         pipe       (管道) //进程的通信 

//shell

         case $num in

             9)语句

                  ;;  //C中的 --- break

             8|6|5|4)语句  //表示同一种情况

                  ;;  //C中的 break

             7)语句

                  ;;

             *)语句 //default

                  ;;

         esac  //esac --->case 反着写

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/760642
推荐阅读
相关标签
  

闽ICP备14008679号