我得到了这样的剧本,
latex $1
asy ${1%.tex}.asy
我知道如果$1=test.tex
,那么${1%.tex}.asy
将是test-1.asy
,但1%.
在这里意味着什么?如果我希望${1%.tex}.asy
成为test.asy
,我该怎么办?
答案 0 :(得分:4)
$ {参数%字}
$ {参数%%字}
这个词被扩展为产生一个模式,就像文件名扩展一样。如果模式匹配参数展开值的尾部,那么展开的结果是具有最短匹配模式(
%
情况)或最长匹配模式({{1})的参数值} case)删除。如果参数为%%
或@
,则模式删除操作依次应用于每个位置参数,并且扩展是结果列表。如果参数是使用*
或@
下标的数组变量,则模式删除操作依次应用于数组的每个成员,并且扩展是结果列表。
因此,如果*
扩展为$1
,则text.tex
会扩展为${1%.tex}
。
答案 1 :(得分:2)
您可以为脚本提供参数,例如:
myscript one two three
这些参数分配给位置参数$1
,$2
和$3
。在上面的示例中,$1
将分配给one
和$2
分配给two
,等等。代码${1%.tex}.asy
只是对变量{{1}进行操作}:它返回一个后缀为$1
的字符串,并将其替换为.tex
。