hylan:shell脚本鸡肋--基本脚本
2018-03-20 10:04
204 查看
${variable} 形式引用变量 额外的花括号通常用来帮助识别美元符后面的变量名。
命令替换 的两种方法:第一种 反引号字符 ` 例如:echo `date` 第二种 $()格式 例如:echo $(date)
为了引用当前目录下的文件,可以在shell中使用单点操作符 即(.)。
today变量是被赋予格式化后的data命令的输出。这是提取日期信息生成日志文件名常用的一种技术。 例如:today=$(date +%y%m%d) ls . -al > log.$today 在当前目录(.) 创建了一个文件:log.180320
反斜线 \ 允许shell脚本将美元符解读为实际的美元符,而不是变量。
引用一个变量值时需要使用美元符,而引用变量来对其进行赋值时则不要使用美元符。
umask值只是个掩码,它会屏蔽掉不想授予该安全级别的权限。要把umask值从对象的全权限值中减掉。对文件来说,全权限的值是666(所有用户都有读和写的权限 即:rw-rw-rw-);对目录来说,则是777(所有用户都有读、写、执行权限 即:rwxrwxrwx)
输出重定向(将命令的输出重定向到文件):command > outputfile 新建或覆盖文件outputfile command >> outputfile 新建或追加文件outputfile 输入重定向(将文件的内容重定向到命令):command < inputfile 例如:wc < log.180320-2 结果显示了文件log.180320-2 中的 行数 词数 和 字节数。 内联输入重定向(无需使用文件进行重定向 数据的开始和结尾文本标记必须一致):command << marker date marker
管道(管道了连接:将命令输出重定向到另一个命令) command1 | command2 linux实际上会同时运行这两个命令,在系统内部将它们连接起来。在第一个命令产生输出的同时,输出会被立即送给第二个命令。数据传输不会用到任何中间文件或缓冲区。 可以在一条命令中使用任意多条管道。也可以搭配使用重定向和管道来将输出保存到文件中。
数学运算 两个方法: expr命令 和 $[ operation ] 备注:bash shell数学运算符只支持整数运算,若要进行任何实际的数学计算,这是一个巨大的限制。
bc(內建的bash计算器 浮点解决方案) 浮点运算是由內建变量 scale 控制的,将这个值设置成计算结果中保留的小数位数。scale 默认值是0。
在脚本中使用bc 基本格式:variable=$(echo"options; expression" | bc) 例如:
marvin@marvin-pc:~/hylan$ var1=20;var2=3.14159
marvin@marvin-pc:~/hylan$ var3=$(echo "scale=2;$var1 * $var2" | bc)
marvin@marvin-pc:~/hylan$ echo $var3
62.83180
内联输入重定向:marvin@marvin-pc:~/hylan$ variable=$(bc << EOF
> options
> statements
> expressions
> EOF
> )
例如:
marvin@marvin-pc:~/hylan$ var1=10.46
marvin@marvin-pc:~/hylan$ var2=43.67
marvin@marvin-pc:~/hylan$ var3=33.2
marvin@marvin-pc:~/hylan$ var4=71
marvin@marvin-pc:~/hylan$ var5=$(bc << EOF
> scale=4
> a1=($var1 * $var2)
> b1=($var3 * $var4)
> a1 + b1
> EOF
> )
marvin@marvin-pc:~/hylan$ echo $var5
2813.9882
如上,在bash计算器中创建的变量只在bash计算器中有效(a1和b1),不能在shell脚本中使用。
退出状态码 是一个0~255的整数值,在命令结束运行时由命令传给shell,可以捕获这个值并在脚本中使用。
命令替换 的两种方法:第一种 反引号字符 ` 例如:echo `date` 第二种 $()格式 例如:echo $(date)
为了引用当前目录下的文件,可以在shell中使用单点操作符 即(.)。
today变量是被赋予格式化后的data命令的输出。这是提取日期信息生成日志文件名常用的一种技术。 例如:today=$(date +%y%m%d) ls . -al > log.$today 在当前目录(.) 创建了一个文件:log.180320
反斜线 \ 允许shell脚本将美元符解读为实际的美元符,而不是变量。
引用一个变量值时需要使用美元符,而引用变量来对其进行赋值时则不要使用美元符。
umask值只是个掩码,它会屏蔽掉不想授予该安全级别的权限。要把umask值从对象的全权限值中减掉。对文件来说,全权限的值是666(所有用户都有读和写的权限 即:rw-rw-rw-);对目录来说,则是777(所有用户都有读、写、执行权限 即:rwxrwxrwx)
输出重定向(将命令的输出重定向到文件):command > outputfile 新建或覆盖文件outputfile command >> outputfile 新建或追加文件outputfile 输入重定向(将文件的内容重定向到命令):command < inputfile 例如:wc < log.180320-2 结果显示了文件log.180320-2 中的 行数 词数 和 字节数。 内联输入重定向(无需使用文件进行重定向 数据的开始和结尾文本标记必须一致):command << marker date marker
管道(管道了连接:将命令输出重定向到另一个命令) command1 | command2 linux实际上会同时运行这两个命令,在系统内部将它们连接起来。在第一个命令产生输出的同时,输出会被立即送给第二个命令。数据传输不会用到任何中间文件或缓冲区。 可以在一条命令中使用任意多条管道。也可以搭配使用重定向和管道来将输出保存到文件中。
数学运算 两个方法: expr命令 和 $[ operation ] 备注:bash shell数学运算符只支持整数运算,若要进行任何实际的数学计算,这是一个巨大的限制。
bc(內建的bash计算器 浮点解决方案) 浮点运算是由內建变量 scale 控制的,将这个值设置成计算结果中保留的小数位数。scale 默认值是0。
在脚本中使用bc 基本格式:variable=$(echo"options; expression" | bc) 例如:
marvin@marvin-pc:~/hylan$ var1=20;var2=3.14159
marvin@marvin-pc:~/hylan$ var3=$(echo "scale=2;$var1 * $var2" | bc)
marvin@marvin-pc:~/hylan$ echo $var3
62.83180
内联输入重定向:marvin@marvin-pc:~/hylan$ variable=$(bc << EOF
> options
> statements
> expressions
> EOF
> )
例如:
marvin@marvin-pc:~/hylan$ var1=10.46
marvin@marvin-pc:~/hylan$ var2=43.67
marvin@marvin-pc:~/hylan$ var3=33.2
marvin@marvin-pc:~/hylan$ var4=71
marvin@marvin-pc:~/hylan$ var5=$(bc << EOF
> scale=4
> a1=($var1 * $var2)
> b1=($var3 * $var4)
> a1 + b1
> EOF
> )
marvin@marvin-pc:~/hylan$ echo $var5
2813.9882
如上,在bash计算器中创建的变量只在bash计算器中有效(a1和b1),不能在shell脚本中使用。
退出状态码 是一个0~255的整数值,在命令结束运行时由命令传给shell,可以捕获这个值并在脚本中使用。
相关文章推荐
- hylan:shell脚本鸡肋--结构化命令(续)
- hylan:shell脚本鸡肋--结构化命令
- linux命令行与shell脚本大全_第十章_构建基本脚本
- Shell脚本学习之基本参数
- Shell脚本------解析elf文件及awk基本使用
- 学习 shell —— 编写基本脚本
- shell脚本开发的6点基本规范和优秀习惯
- 如何在shell脚本中,判断一个基本命令执行是否成功?
- shell查看系统基本信息脚本
- shell脚本:shell的基本元素-6 重定向与管道
- 转载整理-shell脚本的基本知识
- Linux下shell脚本的基本知识(1)
- Linux下shell脚本的基本知识(2)
- cygwin 执行shell脚本时出现出现语法异常,连最基本的if 控制都解析不了的原因
- Unix整理笔记——基本shell脚本编程——里程碑M14
- 写shell脚本的基本规则
- shell脚本编程教程之一 --- 基本命令+环境变量+正则表达式
- Shell 脚本学习 — 基本元素
- shell脚本基本使用
- shell脚本基本命令