shell内建命令--Linux

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代表命令本身, 1 9 1 9 10 1-9代表接受的第1-9个参数,10以上需要用{}括起来,比如 {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

发布了61 篇原创文章 · 获赞 22 · 访问量 4255

猜你喜欢

转载自blog.csdn.net/yiqiushi4748/article/details/103811454