读《Linux Shell脚本攻略》.docx
上传人:qw****27 上传时间:2024-09-11 格式:DOCX 页数:88 大小:66KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

读《Linux Shell脚本攻略》.docx

读《LinuxShell脚本攻略》.docx

预览

免费试读已结束,剩余 78 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1.#!、shebang意义HYPERLINK"http://www.linuxeye.com/"\o"Linux"\t"_blank"Linux环境中的任何脚本语言,都是以这样一个被称为shebang的特殊行作为起始的,在这行中,字符#!被置于解释器路径之前。/bin/bash是解释器的位置http://zh.wikipedia.org/wiki/Shebang2.echo、printfecho后面不用引号,用双引号,单引号区别,并总结双引号中需要转义(\)的特殊字符printf使用引用文本或由空格分隔的参数,我们可以在printf中使用格式化字符串。我们还可以指定字符串的宽度、左右对齐方式等。在默认情况下,printf并不像echo命令一样会自动添加换行符,我们必须在需要的时候手动添加,比如在下面的脚本中:#!/bin/bashprintf“%-5s%-10s%-4s\n”NoNameMarkprintf“%-5s%-10s%-4.2f\n”1Sarath80.3456printf“%-5s%-10s%-4.2f\n”2James90.9989printf“%-5s%-10s%-4.2f\n”3Jeff77.564输出结果:NoNameMark1Sarath80.352James91.003Jeff77.56%s、%c、%d、%f都是格式化字符,其所对应的参数可以置于带引号的格式化字符串之后。%-5s格式化为左对齐宽度为5的字符串替代(-表示左对齐),如果不用-指定对齐方式,字符串则采用右对齐形式。宽度指定了保留给某个变量的字符数,列和列本身有一个空字符串。对Name而言,保留宽度为10,所以看起来列和列之间有11个字符串。因此,任何Name字段的内容都会被显示在10字符宽的保留区域内,如果内容不足10字符,余下的则会以空格符填充。如果超过10个字符,列对齐效果将被打乱。%-4.2,其中.2指定保留2个小数位,对小数部分四舍五入。注意,在每行格式字符串后都有一个换行符\n。3.颜色输出打印彩色文本对应颜色码:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37打印彩色背景对应颜色码:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47echo-e“\e[1;31mThisisredtext\e[0m”echo-e“\e[1;42mGreenbackground\e[0m”4.cat/proc/`pgrepjava`/environ|tr‘\0′‘\n’tr‘\0′‘\n’重新格式化输出,将\0(null字符)替换成\n(换行)5.bc设定小数精度:scale=2将小数位个数设置为2.echo“scale=2;3/8″|bc.37进制转换:echo“obase=2;100″|bc1100100#十进制转换成二进制echo“obase=10;ibase=2;1100100″|bc100#二进制转换成十进制计算平方以及平方根:echo“sqrt(100)”|bc10echo“10^10″|bc100000000006.stdin、stdout、stder、tee0–stdin(标准输入)1–stdout(标准输出)2–stderr(标准错误)$echoa1>a1;cpa1a2;cpa2a3;chmod000a1$cat*|tee-aout.txt|cat-ncat:a1:Permissiondenied1a12a1$catout.txta1a1tee命令接收到来自stdin的数据。它将stdout的一份副本写入文件out.txt。同时将另一份副本作为后续命令的stdin。命令cat-n将从stdin中接收到的每一行数据前加上行号并写入stdout。-a参数可以用于追加内容可以使用stdin作为命令参数,只需要将-作为命令的文件名参数即可:$echowhoisthis|tee-whoisthiswhoisthis7.自定义文件描述符文件描述符是用于访问文件的一个抽象指针。存取文件离不开被称为“文件描述符”的特殊数字。0、1和2分别是stdin、stdout和stderr的预留描述符。我们可以使用exec命令创建自定义的文件描述符。3中模式:只读模式;截断模式;追加模式为读取文件创建一个文件描述符:#touchinput.txt#exec3<input.txt#使用文件描述符3打开并读取文件#echoThisisatestline>input.txt#exec3<input.txt#cat<&3Thisisatestline如果要再次读取,我们就不能再继续使用文件描述符3了,而是需要用exec重新分配文