1. rpm
2. shell中的变量
1)echo:显示 系统变量:$HOME $PWD $SHELL $USER
2)显示当前shell中所有变量:set
3)定义变量:
1)定义变量:变量=值
2)撤销变量:unset变量
3)声明静态标量 readonly 变量名
4)变量定义规则:
1)变量名称可以由字母,数字和下划线组成,但是不能以数字开头
2)等号两侧不能有空格
3)变量名称一般习惯为答谢
4)双引号和单引号有区别,双引号仅将空格脱意,单引号会将所有特殊字符脱意
5)将命令的返回值赋给变量 A=‘ls-la'反引号,运行里面的命令,并把结果返回变量A
A=$(ls-la)等价于反引号
5)环境变量设置:
1)基本语法:
export 变量名=变量值 (功能描述:设置环境变量的值)
echo $变量名 (功能描述:查询环境变量的值)
source 配置文件 (功能描述:让修改后的配置信息立即生效)
2)案例:
在/etc/profile文件中定义JAVA_HOME环境变量
export JAVA_HOME=/opt/module/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin
3)查看环境变量:echo $JAVA_HOME
6)运算符
1)基本语法:
(1)“$((运算式))”或“$[运算式]”
(2)expr m + n
注意expr运算符间要有空格
2)案例:计算(2+3)X4的值
(1)采用$[运算式]方式
[root@hadoop102 datas]# S=$[(2+3)*4]
[root@hadoop102 datas]# echo $S
(2)expr分布计算
S=`expr 2 + 3`
expr $S \* 4
(3)expr一步完成计算
expr `expr 2 + 3` \* 4
echo `expr \`expr 2 + 3\`\*4`
7)条件判断
1)基本语法:
[ condition ](注意condition前后要有空格)
#非空返回true,可使用$?验证(0为true,>1为false)
2)案例:
[atguigu] 返回true
[] 返回false
[condition] && echo OK || echo notok 条件满足,执行后面的语句
8)流程控制
1)if判定:
基本语法:
if [ 条件判断式 ];then
程序
fi
或者
if [ 条件判断式 ]
then
程序
fi
注意事项:(1)[ 条件判断式 ],中括号和条件判断式之间必须有空格
#!/bin/bash
read –p “please input your name:” NAME
#printf ‘%s\n’ $NAME
if[ $NAME = root ]
then
echo “hello ${NAME}, welcome !”
elif [ $NAME = atguigu]
then
echo “hello ${NAME}, welcome !”
else
echo “sorry ”
fi
2)case判定:
1)基本语法:
case $变量名 in
"值1")
如果变量的值等于值1,则执行程序1
;;
"值2")
如果变量的值等于值2,则执行程序2
;;
…省略其他分支…
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
2)案例:
case $1 in
"1")
echo "1"
;;
"2")
echo "2"
;;
*)
echo "no"
;;
esac
9)for循环
1)基本语法1:
for 变量 in 值1 值2 值3…
do
程序
done
2) 案列:
#!/bin/bash
for i in "$*"
do
echo "$i"
done
for j in "$@"
do
echo "$j"
done
results:
1)基本语法2:
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
2)案列:
#!/bin/bash
#从1加到50
s=0
for (( i=1;i<=50;i=i+1 ))
do
s=$(( $s+$i ))
done
echo "The sum is : $s"
10)while循环
1)基本语法:
while [ 条件判断式 ]
do
程序
done
11)read函数(读取控制台输入)
1)基本语法:
read(选项)(参数)
选项:
-p:指定读取值时的提示符;
-t:指定读取值时等待的时间(秒)。
参数
变量:指定读取值的变量名
2)案列:
12)系统函数
1)basename:删除所有前缀,将绝对路径转换为相对路径
2)dirname:将文件名称删掉,只剩下绝对路径
13)自定义函数
1)基本语法:调用函数之前必须先声明,shell是逐行运行的;函数返回值,只能通过$?系统变量获得,可以加return返回,如果不加,默认以最后作为返回值
[ function ] funname[()]
{
Action;
[return int;]
}
function start() / function start / start()
2)计算输出参数的和:
function sum()
#!/bin/bash
function sum(){
s=0
s=$[$1+$2]
echo "$s"
}
read -p "Enter number1:" n1;
read -p "Enter number2:" n2;
sum $n1 $n2;