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
Bash sh-c命令中的引号-语法错误_Bash_Shell_Sh - Fatal编程技术网

Bash sh-c命令中的引号-语法错误

Bash sh-c命令中的引号-语法错误,bash,shell,sh,Bash,Shell,Sh,我想使用sh-c执行以下命令(因为我想稍后附加类似的命令): 这个命令运行良好。但是如果我尝试 sh -c 'impala-shell -q "CREATE TABLE test LIKE PARQUET 'hdfs://../foo.parquet' STORED AS PARQUET"' 我得到一个语法错误: LIKE PARQUET hdfs://.../... ^ hdfs路径中的单引号肯定有问题,但我无法找到答案。hdfs路径需要用引号括起来。我还试图用/

我想使用sh-c执行以下命令(因为我想稍后附加类似的命令):

这个命令运行良好。但是如果我尝试

sh -c 'impala-shell -q "CREATE TABLE test LIKE PARQUET 'hdfs://../foo.parquet' STORED AS PARQUET"'
我得到一个语法错误:

LIKE PARQUET hdfs://.../...
             ^

hdfs路径中的单引号肯定有问题,但我无法找到答案。hdfs路径需要用引号括起来。我还试图用/'反斜杠,根据文档,它实际上应该可以工作。我希望有人能帮助我。

您可以使用Python来告诉您如何引用shell命令。是的,真的。:)

…事实上,您可以成功运行:

sh -c 'impala-shell -q "CREATE TABLE test LIKE PARQUET '"'"'hdfs://.../foo.parquet'"'"' STORED AS PARQUET"'

因为单引号中的所有内容都是文字,包括反斜杠,所以需要更改为不同的引号上下文,以便在单引号字符串中包含单引号文字


这就是
“”
所做的:首先,它结束单引号上下文;然后进入双引号的上下文;然后它插入一个文本
;然后结束双引号上下文;然后它返回到一个引用的上下文。

您可以使用Python告诉您如何引用shell命令。是的,真的。:)

…事实上,您可以成功运行:

sh -c 'impala-shell -q "CREATE TABLE test LIKE PARQUET '"'"'hdfs://.../foo.parquet'"'"' STORED AS PARQUET"'

因为单引号中的所有内容都是文字,包括反斜杠,所以需要更改为不同的引号上下文,以便在单引号字符串中包含单引号文字


这就是
“”
所做的:首先,它结束单引号上下文;然后进入双引号的上下文;然后它插入一个文本
;然后结束双引号上下文;然后返回单引号上下文。

哪些文档告诉您反斜杠可以在单引号中使用?在所有符合POSIX规范的shell中以这种方式引用时,它们都是文字。哪些文档告诉您反斜杠可以用单引号引用?当在所有兼容POSIX的shell中这样引用时,它们都是字面意思。哇,非常感谢!这很好用!也谢谢你的有用的脚本!哇,非常感谢!这很好用!也谢谢你的有用的脚本!
'impala-shell -q "CREATE TABLE test LIKE PARQUET '"'"'hdfs://.../foo.parquet'"'"' STORED AS PARQUET"'
sh -c 'impala-shell -q "CREATE TABLE test LIKE PARQUET '"'"'hdfs://.../foo.parquet'"'"' STORED AS PARQUET"'