shell基础知识笔记
来源:互联网 发布:非洲社交软件 编辑:程序博客网 时间:2024/05/21 00:49
对于shell的定义在此就不在此详述了,各个操作系统都有它自己的shell,想知道shell的类型可以使用命令echo $SHELL来查看,比如你有一个test.sh,你可以使用sh test.sh、source test.sh、chmod +x test.sh ./test.sh来执行shell脚本。
1. 变量,分为系统变量、用户变量、环境变量
用户变量必须由字母数字及下划线组成,并且变量名的第一个字符不能为数字,变量名是大小写敏感的,特别要注意的是变量名和“=”之间不要有空格,“=”和赋值间也不要有空格,其赋值可以如下所示test=“hello”,引用变量使用${test}
2. 条件测试,条件测试一般分为test测试和表达式测试,表达式测试永远整数值和字符串的测试操作,test测试包括文件状态测试、逻辑测试、字符串测试、数值测试,test的格式为test condition或者直接[ condition ],注意前后要有空格
字符串比较有:
str1 = str2 两个字符串相同结果为真 str1 != str2 两个字符串不相同结果为真,中间要有空格,例如,
TMP1="HELLO"
TMP2="TEST"
test ${TMP1} = ${TMP2}或者[ ${TMP1} = ${TMP2} ]
算术比较
expr1 -eq expr2 两个表达式相等为真 expr1 -ne expr2 两个表达式不等为真
expr1 -gt expr2 expr1大于expr2则为真 expr1 -ge expr2 expr1大于等于expr2则为真
expr1 -lt expr2 expr1小于expr2则为真 expr1 -le expr2 expr1小于等于expr2则为真
文件测试
-e file 文件存在则为真 -r file 文件可读为真
-d file 文件为一个目录为真 -w file 文件可写为真
-f file 是一个普通文件则为真 -x file 文件可执行为真
-s file 文件长度不为0则为真 -o file 文件或者目录归真正用户所有
逻辑操作
!expr 逻辑表达式求反 expr1 -a expr2 两个逻辑表达式与
expr1 -o expr2 两个逻辑表达式或
条件语句
if [表达式] ;then
语句
elif [表达式];then
语句
else
语句
fi
case语句
case 变量 in
str1)
语句;;
str2)
语句;;
*)
语句;;
esac
循环语句
for var in list;do
语句
done
while 表达式;do
语句
done
until 表达式;do
语句
done
select item in itemlist;do -- 如果没有提供itemlist则使用位置参数
语句
done
shift语句,如果要向一个shell脚本传递信息,可以使用位置参数完成此功能,shift命令用来将命令行参数左右,也可以指定左移的位数,如shift n
3. 函数,要定义一个shell函数,只需要简单的写出它的名字,然后是一对空括号,再把有关的语句放在一对花括号中即可
function()
{
语句
}
4. 杂项命令
break -- 从for/while/until循环中退出
continue -- 跟C语言的作用一样
exit n -- 以退出码n退出脚本运行
return -- 函数返回
export -- 将变量导出到shell,使之成为shell的环境变量
set -- 为shell设置参数变量
unset -- 从环境中删除变量或者函数
read -- 输入参数
stty -- 取消回显
``用在产生的结果不会再送给shell解释,而只作为赋值时直接使用,文本输出时与""配合使用;
()有在产生的结果还会再作进一步解释时,用与不用都可以,属于"脱裤子放屁"类型的,故除了提高程序可读性之外,一般不使用
当然shell不止那么简单,这只是基础中的基础,shell可以与sed、awk、grep等一起使用,要能更熟练的使用shell来编写脚本还有很长的路要走。
- shell基础知识笔记
- shell学习笔记-基础知识
- linux shell脚本基础知识笔记
- Linux学习笔记(shell基础知识)
- shell基础知识
- shell基础知识
- shell基础知识
- SHELL 基础知识
- Shell 基础知识
- shell基础知识
- shell基础知识
- shell 基础知识
- shell 基础知识
- shell 基础知识
- Shell基础知识
- Shell基础知识
- shell基础知识
- shell基础知识
- 过滤敏感词
- !!!我的Javascript之旅——对象的原型链之由来 函数对象的创建过程
- UVALive 4614 Moving to Nuremberg
- 读《windows核心编程》笔记1
- Vijos模拟赛
- shell基础知识笔记
- Eclipse配色插件-Eclipse Color Theme
- Java数据类型和MySql数据类型对应表
- Baranovskiy的非常著名的5个问题
- SUb Main 的用途
- 《Unix环境高级编程》:递归遍历目录层次结构,并按文件类型计数
- JQuery之Ajax
- Ubuntu的启动配置文件grub.cfg(menu.lst)设置指南
- Blocks 概念预览