因为除了ksh之外的shell不支持pass-by-reference,如何在不使用全局变量的情况下将多个数组传递给bash中的函数,并且允许将任何合法变量内容作为数组元素包含在内(不保留印记)?
我有一个复杂的命令,我通过 ssh 传递到远程服务器。我正在尝试解压缩文件,然后在第二个 ssh 命令中更改其命名结构和扩展名。我的命令是:
ssh root@server1 "gzip -d /tmp/file.out-20171119.gz; echo file* | awk -F'[.-]' '{print $1$3".log"}'"
Run Code Online (Sandbox Code Playgroud)
显然,打印语句的 .log 部分周围的 " 使我失败了。这个想法是我将从文件名中删除 .out 部分,并以 file20171119.log 作为结束结果。我只是有点困惑语法或如何正确转义,以便 bash 适当地解释 .log。