exec命令()取代当前shell
find ./ -name "*.txt" -exec ls -al {} \;
find ./ -name "*.txt" -exec rm -rf {} \;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-asuNPUtM-1577971154085)(en-resource://database/3994:1)]
export 使变量都能被子shell识别
majun@instance-zqtg07w6:~$ cat export.sh
#!/bin/bash
echo $var
majun@instance-zqtg07w6:~$ bash export.sh #输出空白
majun@instance-zqtg07w6:~$ var=100
majun@instance-zqtg07w6:~$ bash export.sh #输出空白
majun@instance-zqtg07w6:~$ export var=100
majun@instance-zqtg07w6:~$ bash export.sh
100
kill命令(常用)
#kill的信号代码有很多种,常用的三种
1(原地重启)、9(强行杀掉)、15(正常结束)
kill -9 2935
kill -1 2915
kill -15 3333
整数运算:let
majun@instance-zqtg07w6:~$ let i=2+2
majun@instance-zqtg07w6:~$ echo $i
4
majun@instance-zqtg07w6:~$ let i=15/7
majun@instance-zqtg07w6:~$ echo $i
2
majun@instance-zqtg07w6:~$ let i=15%7
majun@instance-zqtg07w6:~$ echo $i
1
majun@instance-zqtg07w6:~$ let i=2**3
majun@instance-zqtg07w6:~$ echo $i
8
#同时支持类c计算
majun@instance-zqtg07w6:~$ let i++
majun@instance-zqtg07w6:~$ echo $i
9
majun@instance-zqtg07w6:~$ let i+=10
majun@instance-zqtg07w6:~$ echo $i
19
显示目录:pwd
majun@instance-zqtg07w6:~$ pwd
/home/majun
majun@instance-zqtg07w6:~$ echo $OLDPWD
/home
majun@instance-zqtg07w6:~$ echo $PWD #和pwd命令一样
/home/majun
read:从标准输入读数据到变量
majun@instance-zqtg07w6:~$ vim read.sh
majun@instance-zqtg07w6:~$ cat read.sh
#!/bin/bash
declare N
echo "which one do u want"
echo -n "which (input):"
read N
echo "$((N*12)) candy in box!"
majun@instance-zqtg07w6:~$ bash read.sh
which one do u want
which (input):12
144 candy in box!
majun@instance-zqtg07w6:~$ vim read.sh
majun@instance-zqtg07w6:~$ cat read.sh
#!/bin/bash
declare N
echo "which one do u want"
echo -n "which (input):"
read N
echo "$((N*12)) candy in box!"
#上下两个是等同的
read -p "which (input):" N
echo $N
majun@instance-zqtg07w6:~$ bash read.sh
which one do u want
which (input):12
144 candy in box!
which (input):12
12
注意:read是按行读取的,用回车符分一行,你可以输入任何,都会保存在变量REPLY中
ajun@instance-zqtg07w6:~$ read
line 1
majun@instance-zqtg07w6:~$ echo $reply
majun@instance-zqtg07w6:~$ echo $REPLY
line 1
return:定义函数返回值
扫描二维码关注公众号,回复: 9324047 查看本文章
majun@instance-zqtg07w6:~$ vim return.sh
majun@instance-zqtg07w6:~$ cat return.sh
#!/bin/bash
function func_01 {
return 100
}
func_01
echo $?
majun@instance-zqtg07w6:~$ bash return.sh
100
shift:位置参数
解释:
主要是向脚本中传递数据,变量名不能自定义,变量作用是固定的
$n
$0代表命令本身,
{10}代表接收的第10个参数
$*
代表接收所有的参数,将所有参数看作一个整体
$@
代表接收的所有参数,将每个参数区别对待
$#
代表接收的参数个数
majun@instance-zqtg07w6:~$ cat shift_01.sh
#!/bin/bash
echo "script name:$0"
echo "first parameter:$1"
echo "second parameter:$2"
echo "third parameter:$3"
echo "forth parameter:$4"
echo "all of the parameter are:$@"
echo "all of the parameter are:$*"
echo "count of par is:$#"
majun@instance-zqtg07w6:~$ bash shift_01.sh 1 2 3 4
script name:shift_01.sh
first parameter:1
second parameter:2
third parameter:3
forth parameter:4
all of the parameter are:1 2 3 4
all of the parameter are:1 2 3 4
count of par is:4
until命令刚好与while命令相反,until命令需要制定一条测试命令,这条命令通常产生一个非0的退出状态,只要测试命令的退出状态非0,bash shell就会执行列在循环中的命令,一旦测试条件返回0退出状态,循环停止!
shift命令可以对脚本参数做偏移操作。
majun@instance-zqtg07w6:~$ cat -n shift_02.sh
1 #!/bin/bash
2 until [ -z "$1" ]
3 do
4 echo "$*"
5 shift
6 Done
majun@instance-zqtg07w6:~$ vim shift_02.sh
majun@instance-zqtg07w6:~$ bash shift_02.sh
majun@instance-zqtg07w6:~$ bash shift_02.sh 1 2 3
1 2 3
2 3
3
所有的练习脚本都在:
https://github.com/SaltNego/Learn_linux_bash