摘要:Bash 2.x提供了创建一维数组的能力。有多种方法创建,用内建命令declare -a或直接数组元素赋值。向数组赋值时,如果不指定下标,下标自动从0开始,每次增加1。数组的尺寸没有限制,下标也不必是一定顺序的数字。获取数组元素的语法是:${arrayname[index]}获取所有数组元素列表的语...
阅读全文
摘要:当进行变量替换、命令替换、数学扩展以及路径扩展时,Bash Shell遵循如下顺序:1、大括号扩展$ls f{oo,aa,unble}2、~扩展~cb, ~/doc/working3、命令参数扩展$0-9, $(n)4、变量替换$var15、命令替换$(pwd), `pwd`6、数学扩展$[2+3-...
阅读全文
摘要:Bash的条件控制允许两种类型:1)命令的成功或失败 2)逻辑表达式的真假这两种类型都可以通过退出状态($?)来检验,$?=0为真,否则为假 一、命令的成功或失败 通过查看$?值$echo $? 二、逻辑表达式求值 可以用test命令,[ ]、 [ [ ] ] [ ]是test命令的变形test命令
阅读全文
摘要:一、整数计算1、整数$delare -i num$num=5+5$echo $num10$num="5 + 8"$echo $num13注意:算式中如果有空格,需要用引号引起来2、整数的表示整数可以表达为不同的进制(二进制、十进制等)$delcare -i n$n=2#101$echo $n5$n=...
阅读全文
摘要:Bash只支持整数运算,不支持浮点运算。如果需要进行浮点运算,需要使用bc程序。Bash中的数学扩展有两种形式:$[ expression ]或$(( expression )) 例子:$echo $[5+4-2]7 $echo $[ 5*(6-2) ]20 var1=100var2=50var3=
阅读全文
摘要:命令替换:将命令替换为命令的输出,所有的shell支持使用反引号的方法进行命令替换。Bash支持两种形式:$(command) 和`command`命令替换是可以嵌套的,如果使用反引号的形式,在内部反引用前必须使用反斜线转义。例子:$echo $(pwd)或$echo `pwd`命令替换嵌套$ech...
阅读全文
摘要:top命令可以用来方便地观察当前系统中运行的进程的信息,并可以在运行过程中执行改变进程的优先级、更改排序规则、导出状态信息等操作,非常方便。1、主要选项-d:后接秒数,状态更新的秒数,默认5秒-b:以批次的方式运行top,通常利用重定向将top的输出重定向到文件-n:结合-b使用,运行top几次-p...
阅读全文
摘要:GNU版本的printf命令用来格式化输出,效果类似与C语言的printf函数。2.x以上版本的Bash内建的printf命令和e/usr/bin下的printf命令使用方法一样。例子:$printf "The number is %.2f\n" 100The number is 100.00$pr...
阅读全文
摘要:read命令用于从终端或文件中读取用户输入,它读取整行输入,如果没有指定名称,读取的行被赋值给内部变量REPLY。read命令常用选项:-a,-p,-s,-t,-n1、REPLY变量$readhello$echo $REPLYhello2、读入用户指定的变量$read answerhello$ech...
阅读全文
摘要:作业控制是bash Shell提供的一项强大功能,它允许你选择在前台还是后台运行程序,即作业。1、开启bash的作业控制功能#set -o monitor或#set -m2、显示在后台运行的作业#jobs[1]- 运行中 gedit &[2]+ 运行中 sleep 1000 &+代表最后放到后台运行...
阅读全文
摘要:单引号和双引号的区别 单引号:必须成对使用,它可以保护所有的字符不被翻译。如变量$1,和奇数个单引号的作用相同,偶数个单引号=1个双引号双引号:必须成对出现,它可以保护一些元字符不被翻译,但允许变量和命令替换,和偶数个单引号的作用相同。另外,当引用时(使用一个变量的值)用双引号有助于防止由于空格导致
阅读全文
摘要:方法一:用here文档和case语句建立 #!/bin/bash while true do cat<<- ENDIT //<<-忽略制表符TAB 1)linux2)xterm3)sun 4)quit ENDITread choicecase "$choice" in1) TERM=linuxexp
阅读全文
摘要:Bash将波浪号作为路径扩展符$echo ~ //扩展为当前用户主目录的全路径名/home/user$echo ~user //扩展为用户user的主目录/home/user$echo ~+ //扩展为当前工作目录/home/user/doc/working$echo ~- //扩展为先前工作...
阅读全文
摘要:1、标准输入/输出/错误当shell启动,它继承三个文件:stdin、stdout、stderr,标准输入通常来自键盘,标准输出和标准错误通常是屏幕。标准输入/输出/错误的文件描述符为0、1、22、重定向操作符 重定向输出>> 追加输出2> 重定向错误...
阅读全文
摘要:1、未设置就临时替换(:-) 冒号:用来检验变量是否设置过,如果没有冒号,则认为设置过,不替换$fruit=peach$echo ${fruit:-plum}peach $fruit=$echo ${fruit:-plum}plum $echo $fruit$ 2、未设置就永久替换(:=) $nam
阅读全文
摘要:Here文档为需要输入的程序,例如,mail、sort和cat等接收在线文本,直到遇到用户定义的结束符号为止。最常用的用户是在Shell脚本中和case命令一起创建菜单、自动登录等等。 1、建立菜单 cb@cb-K43SV:~$ cat herein.sh while true do cat<<-
阅读全文
摘要:1、grep家族grep: Global search Regular Expression(RE) and Print out the linegrep家族包括grep、egrep和fgrep,egrep和fgrep和grep只有很小的不同。egrep是grep的扩展,支持更多的元字符,等效于gr...
阅读全文
摘要:1、基本元字符集^ 锚定行的开始 /^love/ 匹配所有以love开头的行$ 锚定行的结束 /love$/ 匹配所有以love结束的行. 匹配一个字符 /l..e/ 匹配所有这样的行,这些行包含这样的字符:第一个字符是l,紧...
阅读全文
摘要:Bash内置命令exec可以替换当前程序而不需要启动一个新的进程,可以改变标准输入和输出而不需要启动一个新的子进程。如果文件用exec打开,read命令就会把文件指针每次指向下一行直到文件的末尾,如果要重新从文件开始读取,则必须把文件关闭再重新打开。1、替换当前shell,执行某个命令,命令终止,s...
阅读全文
摘要:Bash有四种提示符1、基本提示符(PS1):即$符号,是默认的基本提示符,当Shell运行在交互模式下时,该提示符会出现在屏幕上,可以设置为其它符号。显示PS1设置[cb@cb:16:36:23:~]$echo $PS1[\u@\h:\t:\W]$设置PS1$PS1="[\u@\h:\t:\W]\...
阅读全文