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