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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在CentBS中以与CentOS相同的方式实现FreeBSD中的expr功能?相关的知识,希望对你有一定的参考价值。

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

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

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

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

但我怎么能意识到呢?

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

答案

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

另一答案

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

在/ bin / sh下的11.1-RELEASE-p4上测试:

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

以上是关于如何在CentBS中以与CentOS相同的方式实现FreeBSD中的expr功能?的主要内容,如果未能解决你的问题,请参考以下文章

如何在.NET中以与浏览器相同的大小呈现文本给文本的CSS

如何以与 np.where 相同的方式使用 Tensorflow.where?

如何以与 WhatsApp 相同的方式实施 APNS?

如何以与 iPhoto 相同的方式订购 ALAssetsGroup

如何以与 toad 相同的方式在 PL/SQL 中导出数据库对象?

如何将基于自定义图像的数据集加载到 Pytorch 中以与 CNN 一起使用?