Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.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
“错误”;在shell脚本中添加diff命令时,意外标记“(')”附近出现语法错误_Shell - Fatal编程技术网

“错误”;在shell脚本中添加diff命令时,意外标记“(')”附近出现语法错误

“错误”;在shell脚本中添加diff命令时,意外标记“(')”附近出现语法错误,shell,Shell,我在shellscript中运行diff时遇到一个问题,它是靠近意外标记的语法错误('` 代码: 我有一个2文件文件a,文件B,我想比较2个文件并在脚本中使用: diff <( sort fileA ) <( sort FileB ) 请帮帮我! 谢谢大家!归功于@shellter。您正在使用的构造被调用,这不是POSIX标准所定义的,因此您不能依赖您的所有Shell来实现此功能 此外,当您遇到这样的问题时,请始终确保您实际上是在通过您打算使用的shell运行脚本,如果您在此处询问

我在shellscript中运行diff时遇到一个问题,它是靠近意外标记的
语法错误('`
代码:

我有一个2文件文件a,文件B,我想比较2个文件并在脚本中使用:

diff <( sort fileA ) <( sort FileB )
请帮帮我!
谢谢大家!

归功于@shellter。您正在使用的构造被调用,这不是POSIX标准所定义的,因此您不能依赖您的所有Shell来实现此功能

此外,当您遇到这样的问题时,请始终确保您实际上是在通过您打算使用的shell运行脚本,如果您在此处询问有关shell脚本的问题,请提及您正在使用的shell或您需要针对您的问题的shell,因为这可能会产生很大的差异

以下是一些示例,以证明这在例如
bash
ksh
中有效,但在例如
dash
中无效:

$ bash -c 'diff <( sort file1 ) <( sort file2 )'
2c2
< file1
---
> file2

$ ksh -c 'diff <( sort file1 ) <( sort file2 )'
2c2
< file1
---
> file2

$ dash -c 'diff <( sort file1 ) <( sort file2 )'
dash: 1: Syntax error: "(" unexpected

$ sh -c 'diff <( sort file1 ) <( sort file2 )'
sh: -c: line 0: syntax error near unexpected token `('

$bash-c'diff是否要区分已排序的文件A和已排序的文件B?我已在本地签入,并且在我的计算机中运行良好。嗯,您尝试过加载项shellscript吗?我将其添加到for循环中:for I in$(cat log.txt);diff fileC done脚本顶行是什么?
!/bin/bash
还是
!/bin/sh
?如果是后者,请改为前者。祝你好运。
$ bash -c 'diff <( sort file1 ) <( sort file2 )'
2c2
< file1
---
> file2

$ ksh -c 'diff <( sort file1 ) <( sort file2 )'
2c2
< file1
---
> file2

$ dash -c 'diff <( sort file1 ) <( sort file2 )'
dash: 1: Syntax error: "(" unexpected

$ sh -c 'diff <( sort file1 ) <( sort file2 )'
sh: -c: line 0: syntax error near unexpected token `('