shell编程基础
本文主要对shell中基本的语法进行简要记录,以备查用!
1、shell变量
在定义变量名时不加美元符号$,只在使用变量时需要在变量名前添加美元符号。如
1 name=”lw” 2 echo ${name} #或者$name,但建议加上大括号
注:在对变量进行赋值时,等号“=”的两边不能有空格
变量的命名遵循一下规则:
1)首个字符必须为字母(a-z,A-Z)。
2)中间不能有空格,可以使用下划线(_)。
3)不能使用标点符号。
4)不能使用bash里的关键字(可用help命令查看保留关键字)。
2、shell字符串
shell的字符串可以使用单引号或者双引号。但这两种引号在使用的过程中有些区别。
1)单引号:单引号中的字符串主要存在两个限制:单引号中的变量是无效的;单引号字串中不能出现单引号(对单引号使用转义符后也不行)。总之一句话,单引号里的任何字符都会原样输出。
2)双引号:双引号没有单引号的那些限制,可以输出变量,也可以使用转义字符。
如:
1 course=”python” 2 echo “the course is: ${course}”
3)字符串的其他操作
1 first=”hello” 2 last=”python” 3 #字符串的拼接 4 newStr=“${first}, ${last}” 5 newStr=${first}“, ”${last} 6 #获取字符串的长度 7 len=${#first} 8 #提取子字符串 9 subStr=${first:0:5}
3、shell数组
数组定义:array=(value1, value2, value3, valuen)
如:
1 course=(‘python’, ‘shell’, ‘perl’) 2 val1=${course[1]} #获取course[1]中的数据 3 echo ${course[@]} #输出数组中的全部值
4、if,for,while语句
数值比较操作:
-eq: 等于 -ne:不等于
-gt:大于 -ge:大于等于
-lt:小于 -le:小于等于
假如: num1=${2*6} num2=${12}
1)if语句
1 if test ${num1} -eq ${num2} 2 then 3 echo “equal” 4 elif test ${num1} -gt ${num2} 5 echo “num1 bigger than num2” 6 else 7 echo “num1 less than num2” 8 fi
2)for语句
1 #for i in `seq 10` #输出1~10 2 for i in 3 4 5 6 #输出3 4 5 6 3 do 4 echo $i 5 done
3)while语句
1 while : 2 do 3 echo ”hello” 4 done 5 4)until语句 6 until condition 7 do 8 command 9 done
5、shell函数
比如加法函数:
1 add(){ 2 echo '$1:'$1', $2:'$2 3 return $(($1+$2)) 4 } 5 add 3 4 6 echo "the sum is: $?"
几个特殊的字符含义:
$#:传递到脚本的参数个数
$*:以一个单字符串显示所有向脚本传递的参数
$$:脚本运行的当前进程ID号
$!:后台运行的最后一个进程的ID号
$@:与$#相同,但是使用时加引号,并在引号中返回每个参数。
$-:显示Shell使用的当前选项,与set命令功能相同。
$?:显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
参考链接:
http://www.w3cschool.cc/linux/linux-shell-func.html