Bash 如何在ubuntu中回显斜杠
我有一个json字符串(存储在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
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 $(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