温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Bash shell脚本的语法结构

发布时间:2020-07-28 03:41:31 来源:网络 阅读:252 作者:chbo_yang 栏目:开发技术

  目的:自我整理,自我回顾,自我反省!

  内容:干货!干货!!干货!!!

  附加:不足之处希望大家指正,能给像我一样的菜鸟一点启发就最好啦。仅仅是启发。。。

  感谢:感谢老男孩(老看您的博文和视频,O(∩_∩)O哈哈~),当然还有网上的各路技术大牛,参考书籍《UNIX shell》

Bash shell 脚本结构

#/bin/sh

shbang行,脚本解释器。

如:#/bin/csh,#/bin/awk...等

#

注释。

如:This doc is writed chbo.

shell元字符或通配符

*,'',"",?,[],|,>,>>等

如:rm ./*

显示输出echo "Hello,Chbo."
局部变量

var=value

var='value'

var="value1 value2"

---命令结果赋值给变量---

var=`cmd`

var=$(cmd)

环境变量

---临时生效---

export var=value    

var=value ;export var

---永久生效---

写入:/root/.bash_profile  /root/.bashrc

常写入:/etc/profile

脚本目录:/etc/profile.d

查看变量

echo $var_name

echo $PATH


特殊变量

$0 :打印自身

$n :${10}

$? :echo $? 判断命令执行结果

$# :传参个数

如:

[root@chboa 02]# cat 4.sh 

[ $# -ne 2 ] && {

echo "must two"

exit 1

}

echo haha

传参

---交互式---

[root@chbo ]# read -t 5 -p "pls input:" a 

pls input:33

[root@chbo ]# echo $a

33

---非交互式---

var1=$1

var2=$2

算术运算

1、((n=1+2))

2、n=`expr 5 + 9`

3、let n=1+2

4、n=`echo 3+3|bc`

5、n=$[2+3]

条件测试

方式一:test

方式二:[]

方式三:[[]]

---数值比较--------------------------------

-eq -ge -gt -le -lt -ne

如:[$1 -eq $2]

---字符串比较------------------------------

= !=

-n str1 检查str1的长度是否非0

-z str1 检查str1的长度是否为0

如:

[ "$str1" = "$str2" ]

[ -n "$str1" ]--->检查一个变量是否含有数据

注意:

1、加 “ ”

2、=两边必须有空格

---文件比较--------------------------------

-e

-d -f -r -w -x(excute) -s(size)

-nt (new than) 

-O 检查文件是否存在并属于当前用户所有

-G 检查文件是否存在默认组与当前用户相同

例如:

[ -s $file ] 检查文件是否存在并非空

[ $file1 -nt $file2 ] 检查file1比file2新


条件语句

if [ -f $file ]

then

 echo 0

else

 echo 1

fi                

<===>

[ -f $file ]&&echo 0||echo 1

-------------------------------------------

if [  ]

then

 statements

elif

then

 statements

elif

then

 statements

else

 statements

if

-------------------------------------------

case var_name in

pattern1)

 statements

;;

pattern2)

 statements

;;

pattern3)

 statements

;;

*)

 default value

;;

esac


循环语句

for n in `seq 10`

do

echo 10.0.0.$n

done

---------------------------

while [  ]

do 

 commands

done

----------------------------

until [  ]

do

 commands

done

函数

function name(){

指令

return n

}

执行:

  1. 先定义函数,才能调用

  2. 调用函数,直接写函数名

脚本的执行
  1. sh script_name

  2. chmod +x path/script_name;path/script_name

  3. source script_name或. script_name

    (当前shell可调用脚本里的内容)






向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI