你怎么做:
- 从文本文件中读取
- 用逗号分隔每行
- 并将其分配给 bash 中的变量?
文件列表
renamedfile.xml,url-01.php
renamedFileDifferent.xml,url-02.php
specificFileRename.xml,"url-03"
new文件名.xml,"url-04"
我希望完成这样的事情:
#!/usr/bin/env bash
while read line
do
wget -c -O newfile remoteFile >/dev/null 2>&1
done < filelist
另外,为 cron 作业放置 shell 文件的典型位置是什么?
通过设置特殊的 IFS 变量(内部字段分隔符),可以使 bash 拆分为逗号,而不是默认制表符、换行符和空格。
while IFS=',' read -r newfile remotefile; do
wget -q -c -O "$newfile" "http://somesite/$remotefile"
done < filelist
示例文件中的引号将对此有问题。您可以使用参数扩展来去除引号。
while IFS=',' read -r newfile remotefile; do
wget -q -c -O "$newfile" "http://somesite/${remotefile//"/}"
done < filelist
如果引号实际上是文件名的一部分,则需要对其进行 url 编码。您也可以为此使用参数扩展。
while IFS=',' read -r newfile remotefile; do
wget -q -c -O "$newfile" "http://somesite/${remotefile//"/%22}"
done < filelist