bash脚本的用法

定义与使用变量

[ck143117137@shell.ceshiren.com ~]$ a=1
[ck143117137@shell.ceshiren.com ~]$ echo $a
1

只读变量

[ck143117137@shell.ceshiren.com ~]$ b=10
[ck143117137@shell.ceshiren.com ~]$ readonly b
[ck143117137@shell.ceshiren.com ~]$ echo $b
10
[ck143117137@shell.ceshiren.com ~]$ unset b
-bash: unset: b: 无法反设定: 只读 variable

删除变量

a=10
unset a
echo $a
-bash: ehco: command not found

变量类型

在这里插入图片描述

数组

[root@VM-0-5-centos yum.repos.d]# name=(1 aas22 21212aa 33131aaa)
[root@VM-0-5-centos yum.repos.d]# echo ${name[2]}
21212aa
# 单独赋值
[root@VM-0-5-centos yum.repos.d]# name[2]="new number"
[root@VM-0-5-centos yum.repos.d]# echo ${name[2]}
new number

例子1:拼接字符串

[ck143117137@shell.ceshiren.com ~]$ name="yao"
[ck143117137@shell.ceshiren.com ~]$ new_name="hello,"$name""
[ck143117137@shell.ceshiren.com ~]$ echo $new_name 
hello,yao```



# 数组取值
[ck143117137@shell.ceshiren.com ~]$ a=(1 2 3 4 a)
[ck143117137@shell.ceshiren.com ~]$ echo ${a[0]}
1
[ck143117137@shell.ceshiren.com ~]$ echo ${a[4]}
a

## 单独赋值

[ck143117137@shell.ceshiren.com ~]$ a[1]="哈哈哈"
[ck143117137@shell.ceshiren.com ~]$ echo ${a[1]}
哈哈哈
[ck143117137@shell.ceshiren.com ~]$ echo ${a[@]}
1 哈哈哈 new 4 a

if语句

在这里插入图片描述

[ck143117137@shell.ceshiren.com ~]$ if [[ $a>$b ]]; then echo "$a>"$b""; fi;
20>10
# 这里有遇到的坑,if后面需要有一个空格[ $a>$b ]前后也有空格,没有空格的话会报错。只有==需要一个[],>和< 分别要加双层的[[ $a < $b ]]

for循环

[ck143117137@shell.ceshiren.com ~]$ for i in $(cat test01.txt); do echo ${i} ; done
niroot
idjajsidas
jijifjia
123213
jiasjidjas
123123213
jdiasjdiasjdiasjdas
dasdjaisjdias
jijijijij
heleloo
yaoyingdong

while循环

在这里插入图片描述

[ck143117137@shell.ceshiren.com ~]$ while read i ;do  echo $i;done<test01.txt
niroot
idjajsidas
jijifjia
123213
jiasjidjas
123123213
jdiasjdiasjdiasjdas
dasdjaisjdias
jijijijij
heleloo
yaoyingdong

read的用法

循环读取文件内的内容

while reat d line;do echo $line;done <test02.sh 
yaoyingdong@192 ~ % read 1 2 3 4 
a b c d
yaoyingdong@192 ~ % echo $1
a

# 这里直接回车read,输入一个参数,会把这个参数保存给REPLY
yaoyingdong@192 ~ % read
123123
yaoyingdong@192 ~ % echo $REPLY
123123

脚本传参

$0 脚本名称
1   1~ 1 n 获取参数
$# 传递到脚本的参数个数
$$ 脚本运行的当前进程ID号
$* 以一个单字符串显示所有向脚本传递的参数
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误

#!/bin/bash
echo "hello!"
echo $1,$2,$3
echo "文件名" $0
echo "参数数量" $#
echo "all" $*
echo "return"$?

算数运算

a=10 b=20

  • 加法 expr $a + $b 结果为 30
  •   减法	`expr $a - $b` 结果为 -10
    
  • 乘法 expr $a \* $b 结果为 200
    / 除法 expr $b / $a 结果为 2
    补充:还可以这样写 num=$((num1 + num2))
#!/bin/bash
a=20
b=10
echo `expr $a + $b`
echo `expr $a \* $b`   

if 判断

-eq 检测相等 [ $a -eq $b ] 返回 false
-ne 检测不相等 [ $a -ne $b ] 返回 true
-gt 检测左边是否大于右边 [ $a -gt $b ] 返回 false
-lt 检测左边是否小于右边 [ $a -lt $b ] 返回 true
-ge 检测左边是否大于等于右边 [ $a -ge $b ] 返回 false
-le 检测左边是否小于等于右边 [ $a -le $b ] 返回 true

#!/bin/bash
a=20
b=10
echo `expr $a + $b`
echo `expr $a \* $b`
if [ $a -gt $b ]
then
        echo 'true'
elif [ $a -eq $b ]
then
        echo 'false'
fi

bash 执行命令

#!bin/bash
mkdir test
cd test
echo "hello world" > test.txt
cat test.txt          
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值