一 Liunx变量
可以通过名字加值直接赋值
比如 name=zhangsan 注意等号两边不要写任何空格之类的字符
取值时 通过$ 加上变量名
echo $name
1 条件判断
1.1 字符串
[ ] 前后都有空格 判断字符串不为空
[ $name ] 下面输入 $? 输出0 则为真
输出1 则为假
1.2 数字
对于数字来说 其中有 -gt 大于 -ge 大于等于 -lt 小于 -le 小于等于
-ne 不等于 -eq 等于
当要同时满足多个条件时 中间用 -a(and) 或者 -o(or)
1.3 文件
对于文件 则有
-e 文件是否存在
-r 文件是否可读
-w 文件是否可写
-x 文件是否可执行
-f 文件是否是普通文件
-l 文件是否是链接文件
-d 文件是不是目录
二 流程控制
2.1 if
第一种形式
if
then
else
fi
第二种
if
then
elif
then
else
fi
第三种(if嵌套if)
if
then
if
then
else
fi
else
fi
2.2 case
case 的格式是 case 加上一个 $ 加上变量名 后面加in
case $name in
“值1”)
要做的事
;;(两个分号)
“值2”)
要做的事
;;(两个分号)
*)(上面都不满足走这个 相当于java的default)
要做的事
esac
2.3 for
for的第一种形式
for N in 1 2 3 4
do echo $N
done
第二种直接在命令行输入
for N in 1 2 3 4 ; done echo $N ; done
第二种还可以这么写
for N in {1…4} ; done echo $N ; done
利用循环向其他机器发送文件
for hostname in hdp02 hdp03 ; do scp /文件/ $hostname: /文件/
利用循环在集群中执行java程序
先将java程序打包 然后将jar包上传到 Linux 再由一台机器复制 给集群 中其他机器
for hostname in cat /配置文件/
; do ssh $hostname "source /etc/profile ; java -cp 加上jar包 加上包名 类名 ; exit " 循环启动