bash--if、for、while、break、continue、$$、$!、&、ps、()、{}、<、>、>>应用

if判断

[root@WzcWyt wyt]# ls
djangoxuni

[root@WzcWyt wyt]# if [ -e djangoxuni ];then echo 存在;else echo 不存在;fi
存在

for循环

[root@WzcWyt wyt]# for ((i=0;i<10;i++));do echo $i;done
0
1
2
3
4
5
6
7
8
9

# 循环遍历数组
[root@WzcWyt ~]# arry=(a b c d e f g)
[root@WzcWyt ~]# for x in ${arry[*]};do echo $x;done
a
b
c
d
e
f
g

[root@WzcWyt ~]# for x in ${arry[@]};do echo $x;done
a
b
c
d
e
f
g

[root@WzcWyt ~]# ls
areas.sql  wyt  wzc
[root@WzcWyt ~]# for x in `ls`;do echo $x;done
areas.sql
wyt
wzc

while循环

[root@WzcWyt ~]# while [ $i -lt 3 ];do echo $i;((i++));done
0
1
2

[root@WzcWyt wyt]# ll
-rw-r--r--  1 root root        14 Sep  2 09:34 a

[root@WzcWyt wyt]# while read x;do echo $x;done < a
a
b
c


read读取

[root@WzcWyt wyt]# read -p "请输入:" x;echo $x
请输入:12345
12345

>:输入重定向,<:输出重定向,>>:追加

[root@WzcWyt wyt]# echo "hello world" > a
[root@WzcWyt wyt]# cat a
hello world
[root@WzcWyt wyt]# while read x;do echo $x;done < a
hello world
[root@WzcWyt wyt]# echo "aaaaa" >> a
[root@WzcWyt wyt]# cat a
hello world
aaaaa

break退出循环

[root@WzcWyt wyt]# ls
a
apache-maven-3.6.3-bin.tar.gz
apache-tomcat-9.0.30.tar.gz
djangoxuni
jdk-8u231-linux-x64.tar.gz
jenkins.war
mysql80-community-release-el8-1.noarch.rpm
nginx-1.18.0.tar.gz
Python-3.9.4
Python-3.9.4.tgz
# 循环判断当前目录
[root@WzcWyt wyt]# for f in *;do echo $f;if [ -d $f ];then break;fi;done
a
apache-maven-3.6.3-bin.tar.gz
apache-tomcat-9.0.30.tar.gz
djangoxuni

continue跳过本次循环,进入下次循环

[root@WzcWyt wyt]# for f in *;do echo $f;if [ -f $f ];then echo $f 是文件;else continue;fi;done
a
a 是文件
apache-maven-3.6.3-bin.tar.gz
apache-maven-3.6.3-bin.tar.gz 是文件
apache-tomcat-9.0.30.tar.gz
apache-tomcat-9.0.30.tar.gz 是文件
djangoxuni
jdk-8u231-linux-x64.tar.gz
jdk-8u231-linux-x64.tar.gz 是文件
jenkins.war
jenkins.war 是文件
mysql80-community-release-el8-1.noarch.rpm
mysql80-community-release-el8-1.noarch.rpm 是文件
nginx-1.18.0.tar.gz
nginx-1.18.0.tar.gz 是文件
Python-3.9.4
Python-3.9.4.tgz
Python-3.9.4.tgz 是文件
[root@WzcWyt wyt]# 

$$当前bash的ID

[root@WzcWyt wyt]# echo $$
335490
# 重新开启一个bash
[root@WzcWyt wyt]# bash
[root@WzcWyt wyt]# echo $$
335646
[root@WzcWyt wyt]# exit
exit
[root@WzcWyt wyt]# echo $$
335490

子shell

[root@WzcWyt wyt]# a=2
# ()是在子shell里面运行
[root@WzcWyt wyt]# (a=1;echo $a);echo $a
1
2
# {}在当前shell中执行
[root@WzcWyt wyt]# { a=1;echo $a;};echo $a
1
1
[root@WzcWyt wyt]# (a=1;echo $a);echo $a
1
1

&后台运行

# 当前运行
[root@WzcWyt wyt]# sleep 5
# 后台运行
[root@WzcWyt wyt]# sleep 5&
[1] 335702

$!最后一个运行的PID(进程ID)

[root@WzcWyt wyt]# sleep 5
[root@WzcWyt wyt]# sleep 5&
[1] 335702
[root@WzcWyt wyt]# echo $!
335702
[1]+  Done                    sleep 5

ps查看后台进程

[root@WzcWyt wyt]# ps
    PID TTY          TIME CMD
 335490 pts/1    00:00:00 bash
 335722 pts/1    00:00:00 ps
[root@WzcWyt wyt]# ps -ef

bg命令用于将作业放到后台运行

fg命令用于将后台作业放到前台终端运行

[root@WzcWyt wyt]# sleep 50&
[1] 335755
[root@WzcWyt wyt]# jobs
[1]+  Running                 sleep 50 &
[root@WzcWyt wyt]# fg 1
sleep 50
^Z
[1]+  Stopped                 sleep 50
[root@WzcWyt wyt]# bg 1
[1]+ sleep 50 &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值