Unix系统中常见的shell有:sh、csh、ksh、tcsh、bash
使用命令: vim /etc/shells 可以查看当前系统支持的bash
shell执行脚本
创建一个 shell.sh 文件,文件内容:
#!/bin/bash
echo "this is a test"
ls
ls -l
echo "there are all files"
执行方式:
//第一种执行方式:
[admin@localhost Shell]$ chmod +x shell.sh
[admin@localhost Shell]$ ./shell.sh
//第二种执行方式:
[admin@localhost Shell]$ /bin/bash shell.sh
shell变量
//分步 先定义后导出
COUNT=5
export COUNT
//一步完成定义和导出环境变量
export COUNT=5
//删除已经定义的环境变量
unset COUNT
变量引用:
引用shell变量要用到$符号,加{}可以防止歧义。
例如:
COUNT=5
echo $COUNT
echo ${COUNT}911
通配符 Globbing、命令代换、单引号、双引号
1.常见的通配符:
: 匹配0个或多个任意字符
: 匹配一个任意字符
[若干字符] : 匹配方括号中任意一个字符的一次出现
2.命令代换:
反引号“ 或者 $()
shell.sh :
shell会先执行反引号或$()中的命令,将结果代换到当前命令行中!
反引号和$()的区别:
反引号本身就对\进行了转义,保留了本身意思,如果我们想在反引号中起到\的特殊意义,我们必须使用2个\来进行表示。
反引号中: \\ = \
$()中:\ = \
注意:反引号是老的用法,()是新的用法,不管是在学习测试中,还是在实际工作中,()是新的用法,不管是在学习测试中,还是在实际工作中,()的用法都是被推荐的。
算数代换:$(())
例如:将2-1的结果赋给SUB,并显示本地变量SUB
SUB=$((2-1))
echo $SUB
3.单引号和双引号
Shell脚本中的单引号和双引号一样都是字符串的界定符,单引号用于保持引号内所有字符的字面值,而双引号有些情况则特殊。如果字符串中有特殊字符需要处理时就用双引号。
注:单引号标注的字符中不能再出现单引号。
举个例子:
#!/bin/bash
echo '\\'
echo "\\"
echo '`date`'
echo "`date`"