一、shell编程
<1>shell变量
(1)用户自定义变量,shell中变量不支持数据类型,它将任意赋值给变量的数据当做字符串来处理;
(2)定义变量时候直接赋值,没有数据类型。但输出的时候,想要引用变量中的值,需要添加$;
DATA="hello world"//定义变量(双引号不能去掉)
echo $DATA//引用变量中的值
(3)定义变量的时候=两边不能有空格,否则语法错误;
(4)引用变量的方法:$变量名  或  ${变量名}

<2>位置变量(命令行参数)
 $0:脚本的名字
 $1-$9:从命令行传递的第一个到第九个参数
 $#:从命令行传递参数的个数

 $*:显示传递的所有的命令行参数
 $@:显示传递的所有的命令行参数

 $?:获取上一条命令的执行状态或函数的返回值

shell中0为真,1为假;

$$:当前shell脚本的进程号(PID)

eg:test.sh
echo "program is start...."

echo '$0' : "$0"
echo    #换行

echo '$1' : "$1"
echo '$2' : "$2"#{{{
echo '$3' : "$3"
echo '$4' : "$4"
echo '$5' : "$5"
echo '$6' : "$6"
echo '$7' : "$7"
echo '$8' : "$8"#}}}
echo '$9' : "$9"
echo '$10': "${10}"
echo    #换行

echo '$*' : "$*"
echo '$@' : "$@"
echo    #换行

echo '$#' : $#
echo 

echo '$?' : $? 
echo 

echo '$$' : $$
echo

 

eg:2.sh

echo "file_name : $0"

echo "word_count : $#"

echo "retun_value : $?"

echo "string : $@"
echo

<3>shell中的输入和输出语句
(1)read 变量1  变量2  变量3 ...  可以理解为:scanf("%d%d%d",&a1,&b1,&c1)
功能:从键盘多个数据赋值给后面的变量1,空格作为分隔符号。
      若是输入的数据小于变量的个数,按实际输入的个数赋值。(输入2个,需要赋值的     
      变量个数有5个,实际赋值2个)
      若是输入的数据等于变量的个数,按实际输入的个数赋值。
      若是输入的数据大于变量的个数,按实际输入的个数赋值,最后一个变量,后面所 
      有的数据当作有效的参数来接收!
例如:
read var1 var2 var3
输入第一个单词赋值给var1 ,第二个单词赋值给var2,第三个单词赋值给var3
(2)shell中输出语句
echo   $变量名
功能:输出变量中的内容
例如:
echo '$var1' : "$var1"
echo -n '$var1' : "$var1"  不换行输出输出var1变量的内容

<4>shell中的表达式计算
算术计算命令:expr
功能:进行一些+,-,\*,/,%等操作
格式: 
expr(express)  第一个表达式 运算符  第二个表达式   (bash)

((C语言语句))                           #Cshell用户

例如:  
expr 1 + 3(需要空格)
var=`expr 1 + 3`
echo "var : $var"
((var = 1 + 3))