第一个shell脚本
- 编辑
vim test.sh
#!/bin/bash echo 'hello world'
脚本第一行指定解释器,常见的有bash、sh、csh、tcsh、ash等。
- 执行
chmod +x test.sh ./test.sh
./test.sh这样写是告诉系统执行路径。当然也可以sh test.sh
这样执行。
shell变量
定义变量
test_var='test'
注意:=号两边没有空格。
变量赋值
test_var='value2' #或者 test_var=`command` #或者 test_var=$(command)
第一种是直接赋值。后两种是通过执行命令,命令结果赋值给变量;通过``
或者$()
将命令包起来,command是你要执行的命令。
使用变量
echo $test_var #或者 echo ${test_var}
使用一个定义过的变量只需要变量名前加个$。花括号是可以省略的,当不容易区分变量名时建议加上花括号。
注释
以符号#
开头的为注释,编译器不会执行。
字符串
shell中的字符串可以用单引号,也可以使用双引号,也可以不适用引号。
单引号使用的限制:
- 单引号中的任何字符都会原样输出,单引号字符串中的变量是无效的。
- 单引号字符串中不能出现单引号(对单引号使用转义符后也不行)
双引号
echo "hello, $test_var"
- 双引号字符串中可以有变量
- 双引号中可以出现转义字符
获取字符串长度
test_var2='value2' #获取字符串长度 echo ${#test_var2}
截取字符串${string: start :length}
或者${string: 0-start :length}
,前者从前向后截取,下标从0开始;后者从后向前数,0-2就是倒数第二个字符开始,向后截取对应长度的字符。
test_var3='hello, Terry' #输出ll echo ${test_var3:2:2} #输出ry echo ${test_var3:0-2:2}
流程控制
- if elif else
if condition1 then command1 elif condition2 then command2 else commandN fi
- for while
for var in item1 item2 ... itemN do command1 command2 ... commandN done
- for
for (( EXP1; EXP2; EXP3 )) do command1 command2 command3 done
- 无限循环
while : do command done
转载请注明:Terry's blog » shell脚本快速入门