最近在看flink源码,flink的启动脚本都是bash,所以顺带简单温习了下bash的语法.
下面是一个简单的bash程序:
#!/bin/bash # this is a demo str="Hello World" echo $str
#!
是说明当前个文件的类型的,Linux 系统根据 “#!” 及该字串后面的信息确定该文件的类型。#
后面是注释(上面那种情况除外)保留字
,比如**-
**;也不能包含空格
等号左右两边不能有空格
;
**for ((i=0;i<${#MASTERS[@]};++i)); do master=${MASTERS[i]} webuiport=${WEBUIPORTS[i]}
其中i就是在for循环头里面
/bin/bash
指定了文件类型和解释器,所以一般通过给bash文件加可执行权限
(sudo chmod +x 文件名),之后通过./文件名
运行即可{}
中的字符也是被当做字符串处理$
来表示变量。如果表达式中包含了空格或其他特殊字符,则必须引起来。比如:i=1 let i=i+10 #表达式中没有空格,则带计算的表达式不用引号括起来
存在空格的时候:
i=1 let "i = i + 10"
此时不加""
会报错
#! /bin/bash x=2000 x=`expr $x + $x` echo $x # 输出4000
注意:参数和运算符中要有空格隔开:
#! /bin/bash x=2000 x=`expr $x+$x` echo $x # 输出:2000+2000
操作 | 整数操作 | 字符串操作 |
---|---|---|
相同 | -eq | = |
不同 | -ne | != |
大于 | -gt | > |
小于 | -lt | < |
大于或等于 | -ge | |
小于或等于 | -le | |
为空 | -z | |
不为空 | -n |
比如:
x="2000" y="2000" if[ x=y ]; then #注意[]前后的空格不能少 echo "echo" fi
if [ expression ] then statments elif [ expression ] then statments else statments fi
for 循环控制 do statments done
while [ condition ] do statments done
function my_funcname { code block }
或者
my_funcname() { code block }
BASH 中要求函数的定义必须在函数使用之前
欢迎关注个人公众号【菜鸟名企梦】,公众号专注:互联网求职面经、java、python、爬虫、大数据等技术分享**:
公众号**菜鸟名企梦
后台发送“csdn”即可免费领取【csdn】和【百度文库】下载服务;
公众号菜鸟名企梦
后台发送“资料”:即可领取5T精品学习资料**、java面试考点和java面经总结,以及几十个java、大数据项目,资料很全,你想找的几乎都有