Bash 使用makefile脚本将目录中的文件编译到它们自己的zip文件夹中

Bash 使用makefile脚本将目录中的文件编译到它们自己的zip文件夹中,bash,makefile,terminal,Bash,Makefile,Terminal,我目前正在参加一个通过在线工具提交家庭作业的课程。但是,它要求提交文件由单独的压缩文件组成,以便正确地编译它们。当我有时提交多份意见书时,这很耗时。我正在尝试编写一个生成文件脚本来生成同一文件夹中所有文件的压缩副本。然后,我想将这些压缩文件移动到我随后创建的名为zippedFiles的子目录中。这就是我目前所拥有的。当我直接在终端中运行for循环行时,它可以工作,但当我运行make-zip时,它会出现以下错误:zip错误:无事可做!(.zip)我对学习bash和制作文件还不熟悉,一直无法独自研究

我目前正在参加一个通过在线工具提交家庭作业的课程。但是,它要求提交文件由单独的压缩文件组成,以便正确地编译它们。当我有时提交多份意见书时,这很耗时。我正在尝试编写一个生成文件脚本来生成同一文件夹中所有文件的压缩副本。然后,我想将这些压缩文件移动到我随后创建的名为zippedFiles的子目录中。这就是我目前所拥有的。当我直接在终端中运行for循环行时,它可以工作,但当我运行make-zip时,它会出现以下错误:zip错误:无事可做!(.zip)我对学习bash和制作文件还不熟悉,一直无法独自研究解决方案

zip:
    rm -f ./*zip    #remove any extra zip copies.
    rm -rf zippedFiles #delete old zippedFiles
    for i in *; do zip $i.zip $i; done #zip each file ***not working
    mkdir zippedFiles       #remake new zippedFiles directory

在makefiles中,必须使用两次
$
来引用for循环中的变量


用于i in*;do zip$$i.zip$$i;完成

要展开此操作,make将看到
$i
,假设它是一个make变量,并展开它(为空,因为它未设置),然后在*中传递i的字符串
;做zip.zip;已对外壳执行
。如果使用
$
,make会在传递到shell之前将其扩展为
$