首页 > 代码库 > shell编程基础
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 then3 echo “equal”4 elif test ${num1} -gt ${num2}5 echo “num1 bigger than num2”6 else7 echo “num1 less than num2”8 fi
2)for语句
1 #for i in `seq 10` #输出1~102 for i in 3 4 5 6 #输出3 4 5 63 do4 echo $i5 done
3)while语句
1 while :2 do3 echo ”hello”4 done5 4)until语句6 until condition7 do8 command9 done
5、shell函数
比如加法函数:
1 add(){2 echo ‘$1:‘$1‘, $2:‘$23 return $(($1+$2))4 }5 add 3 46 echo "the sum is: $?"
几个特殊的字符含义:
$#:传递到脚本的参数个数
$*:以一个单字符串显示所有向脚本传递的参数
$$:脚本运行的当前进程ID号
$!:后台运行的最后一个进程的ID号
$@:与$#相同,但是使用时加引号,并在引号中返回每个参数。
$-:显示Shell使用的当前选项,与set命令功能相同。
$?:显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
参考链接:
http://www.w3cschool.cc/linux/linux-shell-func.html
shell编程基础