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 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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。