Bashshell脚本的语法结构-创新互联

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

成都创新互联拥有十载的建站服务经验,在此期间,我们发现较多的客户在挑选建站服务商前都非常的犹豫。主要问题集中:在无法预知自己的网站呈现的效果是什么样的?也无法判断选择的服务商设计出来的网页效果自己是否会满意?成都创新互联业务涵盖了互联网平台网站建设、移动平台网站制作、网络推广、按需规划网站等服务。成都创新互联网站开发公司本着不拘一格的网站视觉设计和网站开发技术相结合,为企业做网站提供成熟的网站设计方案。

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

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

 感谢:感谢老男孩(老看您的博文和视频,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可调用脚本里的内容)





另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:Bashshell脚本的语法结构-创新互联
当前网址:http://scyanting.com/article/dghsds.html