我的问题很简单,但自从我上次阅读 bash 脚本以来已经太久了,所以我再也无法理解 bash 了......
我有一个文件夹(名称包含空格),其中有 x 个子文件夹。现在我想将每个子文件夹压缩到其自己的 zip 存档中。
以下脚本是我所拥有的:
#!/bin/bash
cd $1
for folder in $1/* do
zip -r "${folder%/}" "${folder%/}"
done
Run Code Online (Sandbox Code Playgroud)
每次我尝试执行它时./test.sh .我都会得到
./test.sh: line 4: syntax error near unexpected token `zip'
./test.sh: line 4: `zip -r "${folder%/}" "${folder%/}"'
Run Code Online (Sandbox Code Playgroud)
我的想法出了什么问题,为什么?
如果我file="subfolder i want to zip"在 shell 中输入一个变量(例如)并执行zip -r "${file}" "${file}"它,它对于一个文件夹就可以正常工作。
我感谢任何帮助,并希望我的问题能够轻松解决(这样我就能理解它)。预先非常感谢。
尝试这个 -
#!/bin/bash
cd $1
for folder in $1/*
do
zip -r "${folder%/}" "${folder%/}"
done
Run Code Online (Sandbox Code Playgroud)
要么放在";"后面$1/*,要么在下一行中使用 do。