一、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))