首页 > 代码库 > shell编程基础

shell编程基础

本文主要对shell中基本的语法进行简要记录,以备查用!

1、shell变量

在定义变量名时不加美元符号$,只在使用变量时需要在变量名前添加美元符号。如

1 name=”lw”2 echo ${name}     #或者$name,但建议加上大括号

注:在对变量进行赋值时,等号“=”的两边不能有空格

变量的命名遵循一下规则:

  1)首个字符必须为字母(a-zA-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} 

1if语句

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编程基础