Shell -- 数学运算

shell脚本关键在于输入多个命令并且处理每个命令的结果,将一个命令结果传给另外一个命令。

两个命令在一起运行,用分号隔开

echo 可以显示简单的文本字符串

echo this is a test 可以不加双引号
但是如果字符串中有双引号的话,就要用其他引号将字符串圈起来

echo “this is a test to see if you’re paying attention”

在同一行显示一个文本字符串作为命令输出

echo -n “the time and date are:”
之后输出的内容就会在一行

使用变量,$PATH

但是要使用美元符号,就要加反斜杠
echo “the cost of the item is $15”

${variable}引用的变量,用来帮助识别美元符号后的变量

shell脚本会自动决定变量值的数据类型

引用一个变量值的时候需要使用美元符,但是引用变量来进行复制的时候不需要美元符。
没有美元符,shell会将其解释为文本字符串

反引号允许将shell命令输出赋给变量

testing=`date`
date +%y%m%d
110131

就算是这样
testing=date

$testing就会直接运行date命令```

###输出重定向

command > outputfile
>会覆盖已有的文件

>>来追加数据

输入重定向
<
命令总是在左侧,重定向符号指向数据流动的方向,表示从输入文件流向命令
wc < test6

内联输入重定向<<
指定一个文本标记来划分要输入数据的开始和结尾

command << marker
data
marker

比如这样
wc << EOF
test string 1
test string 2
test string 3
EOF

取代将命令的输出重定向到文件,可以重定向输出到另一个命令,这个过程是管道连接

command1 | command2
Linux系统其实会同时运行这两个命令,系统内部连接起来,第一个命令产生输出的同时,输出会立即被送到第二个命令,传输数据不会用到任何中间文件和缓冲区域

管道最流行的用法是将命令产生的长输出结果通过管道传送给more命令
对ls命令非常普遍,可以强制在每屏数据的末尾停下来
ls -l | more“`

执行数学运算

使用expr命令
expr 1 + 5

expr也可以识别其他的操作符
如> < | & <= >= = != + - * / %
index  length

expr 5 \* 2
将星号转义,因为*表示通配符

要在shell脚本中将一个数学算式的结果赋给一个变量,需要反引号来获取expr命令的输出

var3=`expr $var2 / $var1`
或者var3=$(expr $var2 / $var1)```


###执行数学表达式更简单的方法

$[ operation ]
var1=$[ 1 + 5 ]
echo $var1

并且不用误解乘号

var2=$[ $var1 * 2 ]

bash shell只支持整数运算“`

退出脚本

退出状态码,命令结束运行的时候传给shell,捕获这个值并且在脚本中使用

$? 成功的时候为0

exit命令
shell脚本会以脚本中最后一个命令的退出状态码退出

exit可以指定一个退出状态码

    原文作者:KevinCool
    原文地址: https://www.jianshu.com/p/c29288020965
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞