Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 背面有多个命令_Linux_Bash_Backticks - Fatal编程技术网

Linux 背面有多个命令

Linux 背面有多个命令,linux,bash,backticks,Linux,Bash,Backticks,我正在编写一个bash脚本,需要运行以下命令,但我似乎不知道如何让它运行,因为我需要两对命令都在backtics中。下面是我试图运行的代码 VERSION=`getserversion.py` |grep `getcliversion.py` 因此,第一部分,获取服务器上运行的版本,第二部分,获取客户端运行的版本,只是尝试查看它们是否匹配,但我无法同时运行这两个命令,我在尝试运行此命令时不断收到bash错误。这里有两种可能的路径:将命令分成两部分,并使用bash进行比较,或者写一个复合行。无论

我正在编写一个bash脚本,需要运行以下命令,但我似乎不知道如何让它运行,因为我需要两对命令都在backtics中。下面是我试图运行的代码

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
参数,其中一些可能会被解释为要读取的文件名。