子shell本身就是独立的进程,可以使用()操作符定义一个子shellPwd;(cd /bin; ls);Pwd当命令在子shell中执行时,不会对当前shell有任何影响,所有改变仅限于子shell内
Bash同样支持函数Function name(){}或者Name(){}执行函数Name传递参数Name arg1 arg2访问参数的方法$1 $2 访问第N个传参$@ 以列表的方式一次性打印所有参数$* 类似于$@ 但每个参数被作为单个实体Return 返回值导出函数函数也能像环境变量一样用export导出,这样,函数的作用域就可以扩展到子进程中Export –f name读取命令返回值Ech
Bash本身就包含了一些选项,能够打印出脚本接受的参数和输入使用选项-x 启动跟踪调试shell脚本Bash –x script.sh-x标识将脚本中执行的每一行都输出到stdout,我们可以在脚本中使用set built-in来启动灬禁止调试打印Set –x 在执行时显示参数和命令Set +x 禁止调试Set –v 当命令进行读取时显示输入Set +v 禁止打印输入把shebangcong#!/
读取日期Date打印纪元时Date +%s--date用于提供日期串作为输入,但我们可以使用任意的日期格式化选项来打印输出星期 %a %A月 %b %B日 %d固定格式日期 %D年 %Y %y小时 %I %H分钟 %M秒 %S纳秒 %NUNIX纪元时 %S用格式串+作为date命令的参数,可以按照你的选择打印出对应格式的日期[root@mio-253 ~]# date "+%D"
获取终端行数和列数[root@mio-253 ~]# echo `tput cols`145[root@mio-253 ~]# echo `tput lines`43打印当前终端名[root@mio-253 ~]# echo `tput longname`dec vt100 (w/advanced video)移动光标[root@mio-253 ~]# tput cup 100 100
创建别名Alias haha=’this is haha’将别名写入文件永久生效Echo ‘alias haha=”this is haha”’ >> ~/.bashrc对别名进行转义Alias命令能够为任何重要的命令创建别名,我们可以将所要运行的命令进行转义,从而忽略当前定义过的所有别名如[root@mio-253 ~]# lsanaconda-ks.cfg instal
数组赋值[root@mio-253 ~]# array_test=(1 2 3)读取[root@mio-253 ~]# echo ${array_test[0]}1读取所有[root@mio-253 ~]# echo ${array_test[*]}1 2 3关联数组关联数组是需要提前声明的[root@mio-253 ~]# declare -A my_array定义[root@mio-253 ~
0 标准输入1 标准输出2 标准错误将文本重定向或保存到一个文件中Echo “111” > aaa.txt将文本追加写入到一个文件中Echo “222” >> aaa.txt当使用重定向操作符时,重定向的内容不会出现在终端,而是直接被导入文件,重定向操作符默认使用标准输出/dev/null 位桶或黑洞/dev/stderr 标准错误/dev/stdout 标准输出/dev/std
Let可以直接执行基本的数学运算[root@mio-253 ~]# let aaa=3+3[root@mio-253 ~]# echo $aaa6操作符[]的使用方法和let类似[root@mio-253 ~]# echo $[ 3+3 ]6也可以使用(())但需要在变量名之前加上$ [root@mio-253 ~]# echo $(( 100+100 ))200Bc是一个用于数学运算的工具,可以
变量时任何一种编程语言必不可少的组成部分,无论你给变量赋值的时候有没有引号,值都会以字符串的形式存储,有一些特殊的变量会被shell环境和操作系统环境用来存储一些特别的值,这类变量就被称为环境变量查看环境变量可以使用env在终端查看于此终端相关的环境变量对于每个进程,在其运行的时候可以使用下面的命令查看Cat /proc/#pid/environ设置环境变量Export用来设置环境变量,至此以后从