我有一个shell脚本,该脚本使用base64对值进行编码并将其存储在变量中。
encoded="$(cat $pathtofile|base64 -w 0)"
这一直有效,直到我最终得到一个带有特殊字符的$pathtofile
。现在,我试图找出如何引用$pathtofile
,以便cat获得正确的文件。当我这样做
encoded="$(cat '$pathtofile'|base64 -w 0)"
我最终遇到一个错误,因为它没有展开$pathtofile
而是按字面意义打印。我尝试了其他几种组合,但它们均导致路径引用错误。
如何以引号$pathtofile
结尾?
答案 0 :(得分:4)
使用$(...)
时可以嵌套双引号。
encoded="$(cat "$pathtofile" | base64 -w 0)"
对于价值而言,外部引号是可选的。在变量分配中不需要它们。如果需要,请删除它们。
encoded=$(cat "$pathtofile" | base64 -w 0)
此外,恭喜,您赢得了Useless Use of Cat Award!
encoded=$(base64 -w 0 "$pathtofile")