如何将shell脚本变量从字符串转换为整数

时间:2018-04-02 16:13:24

标签: bash shell ubuntu

我的脚本有一行来衡量正在运行的进程的实例数

procs=$(pgrep -f luminati | wc -l);

但是,即使$procs的内容是数字,shell脚本也不会将$procs存储为整数。它存储为字符串。

因此我无法运行像

这样的条件

if $procs > 3

有没有办法将此变量转换为整数类型?

2 个答案:

答案 0 :(得分:2)

应该是

if [[ "$procs" -gt 3 ]]
then
 ...
fi

答案 1 :(得分:2)

在bash >truncate写入文件。您现在可能有一个名为3的文件。您应该使用比较器-gt

if [[ "$procs" -gt 3 ]]; then
    ...
fi

此外,整数和字符串没有单独的类型。

编辑: 正如@chepner所解释的,对于POSIX兼容性,您应该使用单括号:

if [ "$procs" -gt 3 ];