我有以下 shell 脚本:
#! /bin/sh
while read page_section
page=${page_section%%\ *}
section=${page_section#* } #NOTE: `%* }` is NOT a comment
wget --quiet --no-proxy www.cs.sun.ac.za/hons/$page -O html.tmp & wait
# echo ${page_section%%\ *} # verify correct string chopping
# echo ${page_section#* } # verify correct string chopping
./DokuWikiHtml2Latex.py html.tmp $section & wait
done < inputfile
和这样的输入文件:
doku.php?id=ndewet:tools:tramonitor TraMonitor
doku.php?id=ndewet:description Implementation -1
doku.php?id=ndewet:description Research\ Areas -1
该脚本会下载一些指定的网页,inputfile
然后必须将行的其余部分(例如“实施 -1”或“研究\领域 -1”)传递给 python 脚本。
现在是粘性位。处理此示例文件的第三行时,它将“Research\Areas”作为两个单独的参数传递给 python 脚本,如下所示:
>>> print sys.argv
['./DokuWikiHtml2Latex.py', 'html.tmp', 'Research', 'Areas', '-1']
如何将输入文件中的“研究领域”等多字部分转换为 python 脚本的单个参数?我试过转义'\',并且也在做
./DokuWikiHtml2Latex.py html.tmp `echo ${section#* }`
除其他外,但无济于事。
输入行末尾的数字是另一个参数,但可选。