shell 一个能编写代码的文件编辑器和一个能解释执行的脚本解释器 Linux 的 Shell 种类众多,常用的有:
Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash) C Shell(/usr/bin/csh) K Shell(/usr/bin/ksh) Shell for Root(/sbin/sh) 运行流程 chmod +x ./test.sh sh ./test.sh ./test.sh脚本例子流程
>su - hr >vi test.sh //脚本文件后缀 .sh #!/bin/bash // #!是⼀个约定的标记,它告诉系统这个脚本需要什么解释器来执⾏,即使⽤哪⼀种 Shell echo “hello world !” >chmod +x test.sh >sh ./test.sh >hello world !调用变量
$变量申明符号
vi predef.sh
#!/bin/bash echo "print $" echo "\$0 = $0" echo "\$1 = $1" echo "\$2 = $2" echo "\$# = $#" echo "\$@ = $@" echo "\$* = $*" echo "\$$ = $$" echo "\$? = $?" >chmod +x predef.sh >./predef.sh 1 2 3 4 >./predef.sh a b c d环境变量默认就存在,常用的有下面这几个:
HOME用户主目录PATH系统环境变量 PATHTERM当前终端UID当前用户 IDPWD当前做目录,绝对路径 >vi test_env.sh #!/bin/bash echo "print env" echo $HOME echo $PATH echo $TERM echo $PWD echo $UID >chmod +x test_env.sh >sh test_env.shreadonly 标记为只读变量 export 指定全局
字符串比较
= 等于,如:if [ “a"=" a" = "a"="b” ] == 等于,如:if [ “a"==" a" == "a"=="b” ],与=等价脚本例子
#!/bin/bash a=10 b=20 if [ $a == $b ] then echo "a=b" else echo "a!=b" fi read -t 30 -p "input :" x if [ $x == 5 ] then echo "x is 5" else echo "x is not 5" fi所谓数组,是有序的元素序列。 [name] 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。 组成数组的各个变量称为数组的分量,也称为数组的元素
x=1 echo $x days=([0]=Sun [1]=Mon [2]=Tue [3]=Wed [4]=Thu // 数组名字=([定义]=元素) [5]=Fri [6]=Sat) echo ${days[$x]} echo ${days[4]} echo ${days[5]}