linux - bash if 语句 : Expression Syntax

标签 linux bash if-statement

<分区>

我收到此错误 if: Expression Syntax.

在这个脚本上

#!/bin/sh

pmon_num=`ps -ef | grep pmon | wc -l`
echo $pmon_num
if [ $pmon_num -gt 1 ]
then

#code

fi

如果我像这样运行脚本:/tmp/script.sh - 它有效。但是错误来自crontab。 Crontab 行是这样的:

* * * * * /tmp/script.sh   > /tmp/log.log 2>&1 &

ls -l/tmp/script.sh 上:

-rwxr--r-- 1 oracle dba 705 Dec 12 07:10 /tmp/script.sh

无法理解问题。

编辑:

我还尝试将 if 语句更改为:

if [ 1 -gt 1 ]

我仍然遇到错误。

最佳答案

我不认为这是 Bash 错误消息。所以,cron 显然是在调用一个不同的 shell(也许是 csh?)。要解决这个问题,并确保它使用适当的解释器运行,请更改:

#!/bin/sh

为此:

#!/bin/bash

关于linux - bash if 语句 : Expression Syntax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20537615/

相关文章:

linux - 权限被拒绝 : '/var/lib/pgadmin/sessions' in Docker

ios - 删除过期的配置文件

mysql - 用于运行 MySQL 查询的 Bash 脚本

java - 我正在尝试使用 if 语句构建一个基本计算器

java - C 或 Java 的 Linux 无线 API

python - 如何在 Linux 终端命令中添加退格键?

c++ - 断点在适用于 Linux 的 Eclipse Luna 的 CDT 8.4.0 上不起作用

bash - Hadoop 2.7.1安装没有bashrc吗?

java - 我怎样才能让它发挥作用? (java作业)

java - 我可以避免使用堆叠 if 语句吗