shell编程(1)

来源:互联网 发布:有机玻璃 亚克力 知乎 编辑:程序博客网 时间:2024/06/07 13:35

=============================shell编程==================================

shell编程的工作主要方向--》系统运维       --》linux服务器开发

ubuntu

shell编程是使用特定的语法规则

window的脚本以.bat结尾

shell的脚本以.sh

脚本程序,不需要编译器去编译,直接使用解析器就可以运行程序


======shell基本语法

第一行的格式  

写法一: #!/bin/bash

写法二:#!/bin/sh

写法三:#!/bin/dash      (精简压缩)     



#!           =========是固定格式

/bin/bash     ======shell脚本的解析器(用于翻译你写的shell命令)


=======================

shell编程注意的问题

(1)用window写shell出现问题(不建议使用window 下的编译工具  建议使用 vim编辑器)

(2)shell中注析符号用#    (不要和和c语言中的" // "弄混)

(3)shell编程中 变量赋值不能乱加空格 ,对于空格比较严格,不能随便使用空格


=========================


shell编程的变量

shell编程中有三种类型:普通变量,环境变量,命令行变量

(1)普通变量        变量名定义方式    ==========变量名=变量的值

(2)环境变量       

PATH  LD_LIBRARY_PATH 

         env查看所有的环境变量

         export  PATH=/xxx/xxx/xxx:$PATH

(3)命令行变量

(主函数传参)

$#表示参数的个数

$n表示是第n个参数

$$当前id号

$@打印所有的参数

$?上一条shell语句执行的结果,执行成功为0,错误为非0值

$*打印所有的参数

在运行时加上source 可以换路径 

mkdir   要创建的文件夹可以嵌套的创建  要加上-p


======================================

shell编程的输入,输出

输出:echo $string

输入:read +变量

$取变量里面值

使用双引号:echo "hello work"           原样输出  hello work

使用单引号:echo 'hello work'            原样输出  hello work

使用反引号:echo `ls`  必须填写合法的shell命令,以不换行方式打印


双引号套了一个双引号:echo "hello work""  原样输出 hello work

双引号套了一个单引号:echo "'hello work'"   打引出  'hello work' 带有单引号

双引号套了一个反引号:echo "`ls`"  单引号里面填写合法的shell命令,以换行方式打印


单引号套了一个双引号是  echo ''hello work''  原样输出

单引号套了一个单引号   echo '"hello work"'  打印出"hello work"

单引号套了一个反引号 echo '`ls`        打印出字符‘ls’'


反引号里面加双引号echo `'ls'`     以不换行方式打印

反引号里面加单引号echo `'ls'`    以不换行方式打印

反引号里面加反引号 echo ``ls``   打印出字符串ls

========================================

转义字符\  反斜杠

\$    就不是表示参数

通配符*

[1-9]1到9其中一个数

[^1-9]除开1-9



===============================

管道 |     (将多个命令组合在一起)


grep "hello" 2.txt -Hn

grep he[a-z]lo 2.txt -Hn

文本搜索



=================================

shell编程中的条件判断

1条件判断(一般跟test语句使用)



格式

方法一:                                                 

if [ -e 1.txt]

then

echo hello

else

echo work

fi

方法二:

if test -e 1.txt

then

echo hello

else

echo work

fi

================================

循环 for whileutil


  循环也支持break,continue

declare  -i n  声明变量n是数值

for((i=0;i<100;i++))   注意有两个圆括号

`seq 1 100`     从1到100范围

        for n  in  n的取值范围    for n in  `seq 1 100`

     do


 done

=========================================

shell编程运算

 +  -   *   /

  方法一:declare -i  a=10

         declare -i  b=5

         declare -i  sum=a+b  

  方法二:declare -i  a=10

         declare -i  b=5

         declare -i  sum=$a+$b 

  前面两种写法的混合运算跟大家学习数学中的写法是一样

  方法三:

         `expr $a + $b`   

  方法三中乘法需要转义,其他的不用,并且运算符两边敲空格    

         `expr $a \* $b`

         `expr $(($a + $b)) \* $c`


0 0
原创粉丝点击