如何在CentBS中以与CentOS相同的方式实现FreeBSD中的expr功能?

时间:2018-01-11 06:32:55

标签: bash centos freebsd

我想从文件中获取一个数字并递增它。文件始终只包含一个数字。 所以在Linux(CentOS)中,我可以做类似的事情:

Update

但我不能在FreeBSD中做同样的事情。据我了解,FreeBSD的expr版本不支持递增变量:expr $ Tmpg + 1

Tmp="an_num.tmp"
Tmpg=$(cat $Tmp)
Tmpi=$(expr $Tmpg + 1)

但我怎么能意识到它?

  

$ uname -a FreeBSD srv 11.0-RELEASE-p1 FreeBSD 11.0-RELEASE-p1#0   r306420:周四9月29日01:43:23 UTC 2016年   root@releng2.nyi.freebsd.org:/ usr / obj / usr / src / sys / GENERIC amd64

2 个答案:

答案 0 :(得分:0)

FreeBSD默认使用不同的shell。安装bash(pkg install bash),使用bash运行它,然后在那里运行脚本。或者,使用shebang line #!/usr/local/bin/bash

答案 1 :(得分:0)

FreeBSD下的

/ bin / sh不支持你所期望的$()表示法,而是使用反引号(``):

在/ bin / sh:

下的11.1-RELEASE-p4上测试
Tmp="an_num.tmp"
Tmpg=`cat $Tmp`
Tmpi=`expr $Tmpg + 1`