尝试在脚本中创建一个命令,以纯文本打印出一个命令,并执行它的作用示例,但是让我失望的是涉及('
的愚蠢语法字符
syntax error near unexpected token `('
在此命令中
openssl rand -base64 37 | awk BEGIN{FS=””} for (i=1; i<=37; i++) printf( "%s",$i );} {printf "\n"}'
我已经在各个地方读到你需要双引"
这些东西或类似东西,但它不起作用。我没有看到问题出在哪里,它应该只是工作,我尝试添加双打"
单身'
和(( ))
,但它们甚至都不起作用。它为什么抱怨('
毫无意义。我在Sublime Text中打开了这个,它没有向我显示任何语法错误,因为它有Bash的语法高亮,它会告诉我是否存在语法错误,而且显然不是。
答案 0 :(得分:2)
如果你从小处开始构建,而不是编写完整的命令然后尝试调试它,你将省去很多麻烦。
现在,这是你应该拥有的命令:
openssl rand -base64 37 | awk ''
然后你可以开始添加它:
openssl rand -base64 37 | awk 'BEGIN{}'
到目前为止一直很好,现在增加更多:
$ openssl rand -base64 37 | awk 'BEGIN{FS=””}'
awk: syntax error at source line 1
context is
>>> BEGIN{FS=� <<<
现在您已将一个问题缩小到FS=””
部分,而不是尝试同时在80个字符的命令中调试三个单独的语法错误:
'
{
。但您可以使用head -c
简化所有这些:
openssl rand -base64 37 | head -c 37