在 zsh (macOS) 中使用变量创建 zip 文件

问题描述 投票:0回答:1

如何在 zsh 中创建 zip 文件,其中可以通过变量包含适当的文件/文件夹:

#!/bin/zsh
files="/var/log/install.log /var/log/jamf.log"
zip -r /private/tmp/archivtest.zip $files

不幸的是,这在 zsh 中不起作用,收到此错误消息:

zip 警告:名称不匹配:/var/log/install.log /var/log/jamf.log zip 错误:无事可做! (尝试:zip -r /private/tmp/archivtest.zip 。-i /var/log/install.log /var/log/jamf.log)

在 bash 中可以,但在 zsh 中不行

macos variables zip zsh
1个回答
2
投票

选项 1 - 数组:

#!/bin/zsh
files=(/var/log/install.log /var/log/jamf.log)
zip -r /private/tmp/archivtest.zip $files

选项 2 -

=
运算符:

#!/bin/zsh
files="/var/log/install.log /var/log/jamf.log"
zip -r /private/tmp/archivtest.zip ${=files}

zsh
中,变量不会自动按空格分割,与
bash
不同。 这里对 shell 之间的差异有一个很好的解释 - 标题为“脚本的主要差异”的部分更详细地描述了空格的处理。 这个答案有关于分词文档的链接,包括这个常见问题解答

© www.soinside.com 2019 - 2024. All rights reserved.