我想从文件中获取一个数字并递增它。文件始终只包含一个数字。 所以在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
答案 0 :(得分:0)
FreeBSD默认使用不同的shell。安装bash(pkg install bash
),使用bash
运行它,然后在那里运行脚本。或者,使用shebang line #!/usr/local/bin/bash
。
答案 1 :(得分:0)
/ bin / sh不支持你所期望的$()表示法,而是使用反引号(``):
在/ bin / sh:
下的11.1-RELEASE-p4上测试Tmp="an_num.tmp"
Tmpg=`cat $Tmp`
Tmpi=`expr $Tmpg + 1`