Linux 背面有多个命令
我正在编写一个bash脚本,需要运行以下命令,但我似乎不知道如何让它运行,因为我需要两对命令都在backtics中。下面是我试图运行的代码Linux 背面有多个命令,linux,bash,backticks,Linux,Bash,Backticks,我正在编写一个bash脚本,需要运行以下命令,但我似乎不知道如何让它运行,因为我需要两对命令都在backtics中。下面是我试图运行的代码 VERSION=`getserversion.py` |grep `getcliversion.py` 因此,第一部分,获取服务器上运行的版本,第二部分,获取客户端运行的版本,只是尝试查看它们是否匹配,但我无法同时运行这两个命令,我在尝试运行此命令时不断收到bash错误。这里有两种可能的路径:将命令分成两部分,并使用bash进行比较,或者写一个复合行。无论
VERSION=`getserversion.py` |grep `getcliversion.py`
因此,第一部分,获取服务器上运行的版本,第二部分,获取客户端运行的版本,只是尝试查看它们是否匹配,但我无法同时运行这两个命令,我在尝试运行此命令时不断收到bash错误。这里有两种可能的路径:将命令分成两部分,并使用bash进行比较,或者写一个复合行。无论如何,最好使用$(命令)而不是反勾号 拆分命令
SVC_VER=$(getserversion.py)
CLI_VER=$(getcliversion.py)
if [ "$SVC_VER" = "$CLI_VER" ] ; then
...
fi
或者,将它们组合成单个命令行
MATCH=$(getversions.py | grep $(getcliversion.py))
请注意,不能对第二个命令使用反勾号,因为反勾号不支持命令嵌套。这不是一个好方法。您可能应该分配变量并进行比较:
server=$(getserversion.py);客户端=$(getcliversion.py);如果[“$server”!=“$client”];然后回显“不匹配:$server vs$client”;fi
可以使用反斜杠嵌套,这很混乱(包括反斜杠…它们的数量与嵌套深度相乘)。顺便说一句,我建议引用:grep-e“$(getcliversion.py)”
,因此输出不能拆分为多个grep
参数,其中一些可能会被解释为要读取的文件名。