shell常用语法

shell常用语法和技巧

目录

shell常用语法和技巧

1,bash 开头语法

2,注释

3.变量

4.字符串截取

5,$符号使用技巧

6.数组相关

7,if使用技巧

8,case基本语法

9,循环

10.特殊符号(重定向,管道)


1,bash 开头语法

#! /bin/bash

2,注释

单行注释使用 #号
例如:
#这是一个注释


多行注释使用 : <<! 内容 !
例如:
<<!
hello 
nihao 
!

3.变量

声明变量注意事项:

  • 等于号两边不能有空格
  • 如果变量不存在值为空字符串
name1="lihua"

name2 = 'lihua'

name1正确,name2错误

使用变量:

  • $加变量
  • ${变量}

注意:单引号里面无法使用变量,双引号可以

name='xiaoming'
echo $name
echo ${name}
echo '${name}'
echo "${name}"

4.字符串截取

获取字符串长度

name='xiaoming'
echo ${#name}

结果是8

截取一段字符串

name='lihua'
echo ${name:0:2}

结果是li

意思是从索引为0的开始截取2个

5,$符号使用技巧

使用变量

  • $变量
  • ${变量}

获取参数

  • $# : 参数的个数
  • $1 : 取第一个参数
  • $2 : 与$1基本一样
  • $* : 是传入的所有参数以空格为分隔符组成的字符串如$1 $2 $3等等
  • $@ : 与$*类似 是"$1" "$2"形式的字符串

6.数组相关

数组与java相似

  • 用()表示
  • 元素分割符为空格
  • 取数用 数组名称[索引] 的形式
  • 中括号中方@或者*表示取整个数组
  • ${#数组名称[@]}表示数据长度

例如:

array=(1 2 3 4 5)

# 取数
echo array[0]

# 数组整个
echo array[@]

# 数组长度
echo ${array[*]}



7,if使用技巧

语法;

if [ 条件 ] 
then
    语句
elif [ 条件 ]
then
    语句
else
    语句
fi

注意事项:

  • []中每一项用空格隔开包括[ 和 ]
  • fi是if的结束标识

常用条件判断参数:

数字判断:

数字判断
参数意义
eq等于
ne不等于
gt大于
lt小于
ge大于等于
le小于等于

字符串判断:

字符串判断
参数意义
-z如果是空返回true
-n如果是非空返回true
==等于
!=不等于

8,case基本语法

a=值
case $a in
    1)
        echo ${a} = 值1
        ;;  
    2)
        echo ${a} = 值2
        ;;  
    3)                                                
        echo ${a} = 值3
        ;;  
    *)
        echo ${a} = 其他
        ;;  
esac

9,循环

for:

in后面值用空格隔开

for 变量 in 值1 值2 值3
do
    语句
done


与java类似
for ((i=1;i<10;i++))
do
	语句
done

while:

while 判断条件
do
    语句
done

until:

until与while相反

until 判断条件
do
    语句
done

注意:

  • break 跳出当前一层循环,但不能跳出casecase属于条件语句

  • continue 跳出当前循环

  • exit 退出

10.特殊符号(重定向,管道)

重定向:

  • > 将左边结果插入右边文件中,并覆盖原有文件
  • >> 将左边结果插入右边文件中,不覆盖原有文件追加在原有文件后面

管道符:

  • || 将左边结果当做条件提供给右边
  • 通常与gred联合使用

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值