shell的要点
2016-05-23 00:00
441 查看
摘要: shell介绍就不介绍了,记录下shell的一些常用的要点总结,以后使用的时候可以直接查询。
我们可以通过 cat /etc/shell 命令查询linux中,那些命令是正确的
a、数值处理
数值运算、比较记录在下面表格
ps:==,!=与-eq ,-ne在[[]]中效果相同,在`expr `中需要使用到-ne,-eq来做比较。
b、字符串
字符串还有一些特殊的使用
c、文件
d、逻辑操作
e、符号
f、内部参数
我们一般使用 $? 来判断上一个命令是否执行成功,其返回值如下
e、数组
for流程
case流程
while流程
unitl流程
输出
shell的要点
shell介绍就不介绍了,记录下shell的一些常用的要点总结,以后使用的时候可以直接查询。1、shell的启动
每一个shell脚本的使用,都需要使用到脚本解释器。直接使用下面的脚本解释器[code=plain]#!/bin/bash
我们可以通过 cat /etc/shell 命令查询linux中,那些命令是正确的
2、变量处理
shell中的变量分为3类:数字、字符串、文件,每一类的处理方式都不相同。a、数值处理
数值运算、比较记录在下面表格
ps:==,!=与-eq ,-ne在[[]]中效果相同,在`expr `中需要使用到-ne,-eq来做比较。
b、字符串
字符串还有一些特殊的使用
[code=plain]${#varname}:输入字符串长度 ${varname:index:long}:从第index开始截取long个字符
c、文件
d、逻辑操作
e、符号
[code=plain]单引号:使用会忽略特殊字符原样输出 双引号:使用会替换变量 反引号:将系统命令的输出插入到这个字符串,和$()一样,后者可移植性不高 $(commond ):功能和反引号一样。 ((exp;exp;exp)):双括号一般做数值的扩展运算 eg:a=10 ((a=a+1)) //直接在将a的值变为11,整个a都会变化。 b=$(( $a + 1 )) //将a的值加1,然后赋值给b,但是a不会变化。和b=`expr $a + 1`作用一样 ps: 1.`commond`和$(commond)作用一样,如果用来做数值运算,比较。则必须使用expr命令,`expr `和$(expr),或者直接用$((运算;比较))。 2.如果流程控制for做运算,如:c的for((int i ;i<num;i++)),则必须用(())双括号。
f、内部参数
[code=plain]执行命令: # ls s1 s2 s3 s3 s5 解析的时候,会将输入的值做参数化处理 $0:./test2.sh 脚本的文件名 $1=s1...(一般$0为./xxx.sh,$1才是我们需要的参数) $#=5 :多少个值 $?:上一个命令,正常退出返回0,反之为非0值。《《重要》》 $*="s1 s2 s3 s3 s5" 参数组成的字符串
我们一般使用 $? 来判断上一个命令是否执行成功,其返回值如下
e、数组
[code=plain]赋值 a=(1 2 3 4) 使用 ${a} = 1 //输出第0个 ${a } (n为下标) ${a[@]}/${a[*]}:数组的所有值 ${#a[@]}/${#a[*]}:数组的长度
3、流程控制
if流程[code=plain]a、 if [[ 表达式 ]] then 操作 elif [[ 表达式 ]] then 操作 esle 操作 fi
for流程
[code=plain]使用一: for varname IN item1 item2 (空格隔开) do #执行语句1 #执行语句2 done 使用二: for ((int i ;i <num ;i++)) do #执行语句 #执行语句 done
case流程
[code=plain]case ${varname} in 模式1) #执行语句1... #执行语句2... 模式2) #执行语句1... #执行语句2... 模式3) #执行语句1... #执行语句2... break esac 模式:${var_name}必须是变量或常数 Ⅰ.自然数 Ⅱ.字符串,[pattern],使用的是正则表达式匹配
while流程
[code=plain]while [[表达式]] do #执行语句1... #执行语句2... done
unitl流程
[code=plain]until循环执行一系列命令直至条件为真时停止。 until [[表达式]] do 执行语句 执行语句 done
4、键盘输入
[code=plain]使用(需要使用空格间隔开) read var1 var2 var3 用户输入: a b c 结果:var1=a,var2=b,var3=c
5、函数
[code=plain]定义: function function_name(){ list of commands; [return value] } 删除: unset .f function_name ps:将函数作为一个命令来使用,也就是可以使用$?,$*,$#;来做判断
6、sleep
睡眠多少秒[code=plain]echo "now : `date` " sleep 10 echo "now : `date` "
输出
[code=plain]now : Mon May 23 14:59:40 CST 2016 now : Mon May 23 14:59:50 CST 2016
相关文章推荐
- android wifi 无线调试
- 运维入门
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- Linux Shell常用技巧
- Shell 脚本编程陷阱
- shell字符串操作详解
- Shell中删除某些文件外所有文件的3个方法
- Ruby中执行Linux shell命令的六种方法详解
- VB使用shell函数打开外部exe程序的实现方法
- Shell编程的一些知识集合
- Shell中的for和while循环详细总结
- 什么是Shell?Shell脚本基础知识详细介绍
- Shell脚本中引用、调用另一个脚本文件的2种方法
- Shell脚本解压rpm软件包
- Linux Shell 数组建立及使用技巧
- Shell脚本实现复制文件到多台服务器的代码分享
- Shell脚本实现批量替换文件内容
- Shell脚本实现的一个简易Web服务器例子分享
- linux Shell学习笔记第五天