shell语法

1. shell脚本开头

#!/bin/bash    #shell脚本开头

2. 注释

##单行注释

:<<!#多行注释

...

...

!

3. 字符串

name="java"

echo ${#name}   #统计name的长度

4. 反引号

反引号: 被``引起来的内容解释器优先执行

5. 变量

name="yinyongjie";

echo $name 也可写成 echo ${name}


$输出变量

变量名和等号之间不能有空格

6.流程控制    

for循环

数字循环写法一:

for((i=0;i<10;i++));

do 

   echo "$i-----"

done


数字循环写法二:

for i in {1..10}

do

   ehoc "$i-----"

done



数字循环写法三:

for i in $(seq 1 10)

do

  echo "$i---"

done


字符循环:

for i in `ls`

do

   echo "$i"

done


==等于 

-gt大于

-lt小于


if 语句语法格式:

if condition

then

    command1 

    command2

    ...

    commandN 

fi


if else 语法格式:

if condition

then

    command1 

    command2

    ...

   commandN

else

    command

fi


while 语句

while condition

do

    command

done


无限循环

while :

do

    command

done

或者

while true

do

    command

done


case语法  : 如果值没有找到匹配的模式用*捕获该值

case 值 in

模式1)

    command1

    command2

    ...

    commandN

    ;;


模式2)

    command1

    command2

    ...

    commandN

    ;;

esac


结束语

breakbreak命令允许跳出所有循环

continue  它不会跳出所有循环,仅仅跳出当前循环。

7. 标准输入

read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量

8. 输出

echo自动带换行

printf不带换行

-e开启转义

\n换行

\c不换行

例子1: 

echo -e "OK! \n" # -e 开启转义

echo "It it a test"

输出结果:

OK!

It it a test

例子2:

#!/bin/sh

echo -e "OK! \c" # -e 开启转义 \c 不换行

echo "It is a test"

输出结果:

OK! It is a test

9. 覆盖和追加

  >输出重定向(覆盖)

  >>输出重定向(追加)

10. 数组

语法:  array_name=(value1 ... valuen)

读取数组:${array_name[index]}

获取数组中的所有元素: ${my_array[*]} 或者  ${my_array[@]}

获取数组的长度:  ${#my_array[*]} 或者 ${#my_array[@]}

遍历数组如下: 

arr=(1 2 3 4 5)

for((i=0;i<${#arr[*]};i++));

do               

echo "------${arr[$i]}"

done

11. 函数

语法:可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。

[ function ] funname [()]

{

    action;

    [return int;]

}

12. 日期

date

date +%Y%-m-%d    

date +%F#输出格式:2017-01-01

date +"%Y-%m-%d %H:%M:%S"

date -d "+1 day"  +%Y-%m-%d

date -d "-1 day"  +%Y-%m-%d

date -d "+1 month"  +%Y-%m-%d

date -d "-1 month"  +%Y-%m-%d

date -d "+1 year"  +%Y-%m-%d#1年前

date -d "-1 year"  +%Y-%m-%d

date -d "+1 year" +%F


猜你喜欢

转载自blog.51cto.com/5731674/2160161
今日推荐