输出重定向:
就是说本来应该直接输出在屏幕上,现在要输出到某个文件里
#!/bin/bash
ls -l > text
就这样很简单, >指向输出的位置,就是一个叫text的文件,如果没有这个文件,会在当前目录自动创建这个文件
永久输出重定向:
如果一个shell脚本里的所有输出,你都要转移到某个文件。那么一行一行的输入这个 > 也太麻烦了吧,所以,可以在脚本开始的时候,写入一个永久输出重定向
#!/bin/bash
exec 1>text1
echo "参数个数:$#"
echo "遍历开始"
那么所有的输出,都不会在屏幕上显示了,会重定向到text1这个文件里去了
那1表示什么呢,1是标准输出的意思,2是标准错误
exec 2>text1
比如说这样就表示将错误信息输出到text1
如果是追加,而不是覆盖的话,要用 >> 来表示。
输入重定向:
就是将某个文件的内容赋值给某个变量
#!/bin/bash
wc < text
echo $wc
比如此,但是输出的,并不是text文件里的内容,而是里面有几行,几个单词,多少个字节。
数学计算:
就是上一篇讲到的东西,这里再提一下:
#!/bin/bash
a=10
b=$[ $a * 20 ]
echo $b
这里就用到了算计,shell中的计算简写就是这样的固定格式,那原来的写法是啥呢?
b=$(expr $a *20 )
就是用expr关键字。这里是不支持浮点数的,只能是整数
若想用浮点数,则需要用bc命令
一般是配合EOF重定向:
f=( bc << EOF
a1=30 * 40
a1/3
EOF
)
这样输出f,就能有小数点了