hadoop一:shell脚本基础
一、一个shell脚本:
bash shell脚本的首行: #!/bin/bash
# 示例:./firstshell
#!/bin/bash echo "haha"
运行脚本的两种常见方式:
1.加可执行权限,直接运行文件
# chmod 744 ./firstshell
# ./firstshell
2.使用解释器执行
# /bin/bash ./firstshell
二、shell中的变量:
定义变量时,注意:
- 定义变量时,变量名不加美元符号;引用变量时,使用$变量名或者${变量名};
- 定义变量时,=号前后不能加空格;
- 首字母必须为字母[a-zA-Z]
- 不能使用标点符号
- 不能使用关键字
示例: ./varshell
#!/bin/bash class='100ABC'
readonly class echo $class
num=`expr 3 + 3`
echo ${num}
unset num
将变量变改为只读变量:readonly 变量名
删除变量:unset 变量名
变量类型:
运行shell时,会同时存在三种变量:
局部变量:仅在当前shell实例中生效
环境变量:所有的程序,包括shell启动的程序,都能访问的环境变量;有些程序需要环境变量来保证其正常运行。必要的时侯,shell脚本也可以定义环境变量。
shell变量:是由shell程序设置的特殊变量。shell变量中,有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行。
三、shell字符串
shell字符串,可以由单引号,也可以由双引号,也可以不用任何引号。
class='abc' class="abc" class=abc
但是在单引号引用时,不识别变量!!!变量和$符号,原样输出!
反引号:引用shell中的命令
class=`date`
字符串的拼接:直接拼接,中间没有任何符号或函数
class=179a echo "class is ${class}"class
179aclass
字符串切片:${变量名:起始位置:切片的字符数量}
class='this is class of 170a' echo ${class:8:5} echo `expr index "$class" is`
class
四、shell数组
bash只支持一维数组,不支持多维数组
定义数组: 数组名=(值1 值2 值3.........值 n)
对数组取值,必须用脚标;不使脚标时,则将输出数组所有元素连接起来的字符串
定义方式一:
arr=(1 2 3 'a' 'b' 'c') echo $arr echo ${arr[*]}
echo ${arr[0]}
123abc
1 2 3 a b c
1
定义方式二:
#!/bin/bash arr2=( 1 2 3 'a' 'b' ) echo ${arr2[*]}
echo ${arr2[0]}
1 2 3 a b c
1
脚标,超出范围,不抛出异常,取出的值为空。
计算数组的元素长度: ${#数组名[*]}
定义方式三:
#!/bin/bash arr3[2]=a arr[10]=b echo ${arr3[*]}
echo ${#arr3[*]}
a b
五、注释: #
posted on 2018-09-02 19:02 myworldworld 阅读(160) 评论(0) 收藏 举报