shell 重定向输入输出

1、输出重定向

最基本的重定向将命令的输出发送到一个文件中。bash shell用大于号(>)来完成这项功能:
command > outputfile
注意:如果输出文件已经存在了,重定向操作符会用新的文件数据覆盖已有文件,不想覆盖文件原有内容,而是想要将命令的输出追加到已有文件中,可以用双大于号(>>)来追加数据。

2、输入重定向

输入重定向将文件的内容重定向到命令,而非将命令的输出重定向到文件。
command < inputfile
内联输入重定向(符号:<<):
无需使用文件进行重定向,只需要在命令行中指定用于输入重定向的数据就可以了

3、管道

管道被放在命令之间,将一个命令的输出重定向到另一个命令中:
command1 | command2
不要以为由管道串起的两个命令会依次执行。Linux系统实际上会同时运行这两个命令,在
系统内部将它们连接起来。在第一个命令产生输出的同时,输出会被立即送给第二个命令。数据传输不会用到任何中间文件或缓冲区

4、执行数学运算

使用**[ ]** 框号
在将一个数学运算结果赋给某个变量时,可以用美元符和方括号==($[ operation ])==将数学表达式围起来。

$ cat test7
#!/bin/bash
var1=100
var2=50
var3=45
var4=$[$var1 * ($var2 - $var3)]
echo The final result is $var4

$ chmod u+x test7
$ ./test7
The final result is 500
$
$

4.1浮点解决方案

1. bc的基本用法
它允许在命令行中输入浮点表达式,然后解释并计算该表达式,最后返回结果。
``bash计算器能够识别:
 数字(整数和浮点数)
 变量(简单变量和数组)
 注释(以#或C语言中的/* */开始的行)
 表达式
 编程语句(例如if-then语句)
 函数
要退出bash计算器,你必须输入quit

bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type 'warranty'.
12 * 5.4
64.8
3.156 * (3 + 5)
25.248
quit
$

浮点运算是由内建变量scale控制的。必须将这个值设置为你希望在计算结果中保留的小数
位数
,否则无法得到期望的结果。

$ bc -q
3.44 / 5
0
scale=4
3.44 / 5
.6880
quit
$

2. 在脚本中使用bc
可以用命令替换运行bc命令,并将输出赋给一个变量。基本格式如下:
variable=$(echo “options; expression” | bc)
第一部分options允许你设置变量。如果你需要不止一个变量,可以用分号将其分开。
expression参数定义了通过bc执行的数学表达式

$ cat test10
#!/bin/bash
var1=100
var2=45
var3=$(echo "scale=4; $var1 / $var2" | bc)
echo The answer for this is $var3

是使用内联输入重定向,它允许你直接在命令行中重定向数据,用以处理大量数据。在shell脚本中,你可以将输出赋给一个变量。
variable=$(bc << EOF
options
statements
expressions
EOF
)
EOF文本字符串标识了内联重定向数据的起止

$ cat test12
#!/bin/bash
var1=10.46
var2=43.67
var3=33.2
var4=71
var5=$(bc << EOF
scale = 4
a1 = ( $var1 * $var2)
b1 = ($var3 * $var4)
a1 + b1
EOF
)
echo The final answer for this mess is $var5
$
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值