Bash 如何在ubuntu中回显斜杠

Bash 如何在ubuntu中回显斜杠,bash,ubuntu,jq,Bash,Ubuntu,Jq,我有一个json字符串(存储在MESSAGE中): 我想用echoblah/halb打印 我试过: echo$MESSAGE | jq.photo.folder-r”/“echo$MESSAGE | jq.photo.file-r它似乎一直挂着 echo$MESSAGE | jq.photo.folder-r“\/”echo$MESSAGE | jq.photo.file-r,它似乎说jq:\/:没有这样的文件或目录 jq:echo:没有这样的文件或目录 如何打印斜杠?我找到了: echo

我有一个json字符串(存储在
MESSAGE
中):

我想用echo
blah/halb
打印

我试过:

  • echo$MESSAGE | jq.photo.folder-r”/“echo$MESSAGE | jq.photo.file-r
    它似乎一直挂着
  • echo$MESSAGE | jq.photo.folder-r“\/”echo$MESSAGE | jq.photo.file-r
    ,它似乎说
    jq:\/:没有这样的文件或目录
    jq:echo:没有这样的文件或目录
如何打印斜杠?

我找到了:

 echo $(echo $MESSAGE | jq .photo.folder -r)$'/'$(echo $MESSAGE | jq .photo.file -r)

只需调用一次
jq
:使用
add
函数进行字符串连接:

jq -r '[.photo.folder, "/", .photo.file] | add' << END
{"photo": {"folder":"blah", "file":"halb"}}
END


更简单:
jq-r'.photo.folder+“/”+.photo.file'

您需要介于
jq
echo
之间的内容,例如
和&
。还有一个
echo
“/”
:)之前,我找到了它:
echo$(echo$MESSAGE | jq.photo.cuReference-r)$'/'$(echo$MESSAGE | jq.photo.landingName-r)
,但是如果文件夹不存在,我如何获取文件呢,因为如果文件夹字段不存在,该语法将返回null/file?斜杠不需要ANSI引号:它没有特殊的功能,因此根本不需要引号。但是,您缺少重要部分的引号:
echo“$(echo“$MESSAGE”| jq.photo.folder-r)/$(echo“$MESSAGE”| jq.photo.file-r)
您不需要
添加
过滤器,只需使用
+
进行字符串连接即可。
jq -r '[.photo.folder, "/", .photo.file] | add' << END
{"photo": {"folder":"blah", "file":"halb"}}
END
blah/halb