Bash编程语法

 使用visual studio code连接远程机器:

Shell语法中,面向过程,不面向对象;非高级编程语言,属于脚本语言,尽量用“”双引号,不要用‘’单引号。

1.变量

        1.1规则:a.变量命名只能是英文字母,数字,下划线组成,首字符不能为数字;

                b.中间不能有空格,可以是下划线;

                c.不能使用标点符号;

                d.不能使用bash内置的关键字(可使用help命令查看保留的关键字)

        定义变量:name="chuntian"

        只读变量:readonly name

        使用变量:$name

        删除变量:unset name(对只读变量无效)

        1.2如果想把一个命令的输出保存到一个变量,使用: 变量名=$(命令) 的方式。         

                注意:$(( ))2个括号代表数值运算;

                           $( ) 1个括号代表命令执行;

        1.3升级全局变量

        .sh结尾的文件中如果使用了$var来引用局部变量,不会生效,可以使用export关键字将局部变量升级为全局变量:

         1.4 .bashrc文件:全局环境文件

                命令行中的export只能将变量设置为当前程序(进程)的全局变量,无法在其他进程中使用该变量,可以在~/.bashrc隐藏文件中使用export设置变量,这样就所有的进程,所有地方,所有shell窗口中都能使用该变量:

                source .bashrc 生效 

 调用变量的方式:“${var_name}”

 env :查看系统的环境变量(同windows中的PATH命令)

 $?:获取前一条命令执行结果,0代表成功,非0代表失败 

 算数运算:$(( 1+1 )) 等效于 "$(expr 1 \+ 1)"

        注意:$(( ))2个括号代表数值运算;

                   $( ) 1个括号代表命令执行;

 2.字符串操作

        str_name="chuntian"

        拼接字符串:greeting="hello,"$str_name""

 3.数组操作

        定义数组:array_name=()

                单独赋值:array_name[n]=valuen 

                取数组元素:value_n=${array_name[n]}

条件表达式条件表达式成功,返回0,不成功,返回非0.

        [ 1 = 1 ] 两边必须有空格,等同[ 1 == 1 ]

逻辑表达式:&& (python中的and),||(python中的or)

文件表达式:

        -f 判断输入内容是否是一个文件

        -d 判断输入内容是否是一个目录

        -x 判断输入内容是否可执行

        -e 判断文件是否存在。

Shell 脚本的宏定义:

        #!/bin/bash :代表用bash这个shell执行脚本代码 

4.if条件控制:

        if [ condition1 ]

        then 

                command1

        elif [ condition2 ]

        then

                command2

                .......

        else

                commandn

        fi

         举例:    if [ a==b ];then echo "true";else echo "false";fi

                        if [[ a>b ]];then echo "a大于b";else echo "a小于b";fi

                        tips:当if后面条件判断为>或者<时,判断条件需要用2个[]包裹,

                               即[[condition]]

        if [ $a -eq $b ];then echo ""$a" equal "$b"";elif [ $a -lt $b ];then echo ""$a" less than "$a"";elif [ $a -gt $b ];then echo ""$a" bigger than "$b"";fi

        tips:注意各个字符间都必须要有空格,还有尽量都使用双引号,可以不考虑单双引号交替.

5.for 循环

   格式1:

        for var in item1 item2....itemN

        do

                command1

                command2

                ........

                commandN

        done

   格式2:

        max=10

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

        do

                echo "${i}"

        done

        for loop in 1 2 3 4 5;do echo "I love chuntian"$loop""

         读取文件,循环打印

6.while 循环

        while condition

        do

                command

        done

         举例:注意比较while read i;do echo $i;done<tt.txt

                        和for i in $(cat tt.txt);do echo $i;done的区别

         此处应比较for i in $(cat tt.txt);do echo $i;done会将文件内的空格算作一行

               脚本:

        执行结果:

 case:

#!/bin/bash
#Author:chuntian_Tester
#Date:2020-02-02
#test while loop

if [ ! $# -eq 3 ];then
    echo -e "Usage:\n $0 num1 +|-|*|/ num2"
    exit 1
fi

case $2 in
    +)
        echo "$1 +$3 = $(($1 + $3 ))"
        ;;
    -)
        echo "$1 +$3 = $(($1 - $3 ))"
        ;;
    \*)
        echo "$1 +$3 = $(($1 * $3 ))"
        ;;
    /)
        echo "$1 +$3 = $(($1 / $3 ))"
        ;;
    *)
        echo "$2 can not calculate"
esac

exit 0

效果:

7.函数

        格式1: 函数名(){ 函数体 }

        格式2: function 函数名{ 函数体 }

         函数传参:

            read -p "请输入用户名:"  username 等同于python中的username=input("请输入用户名")

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chuntian_tester

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值