簡體   English   中英

$ {1%..}在此Shell腳本中是什么意思?

[英]What does ${1%..} mean in this shell script?

我有這樣的腳本,

latex $1
asy ${1%.tex}.asy

我知道如果$1=test.tex ,那么${1%.tex}.asy將是test-1.asy ,但是1%.是什么1%. 是這里嗎 如果我希望將${1%.tex}.asy test.asy ,我應該怎么辦?

Bash參考手冊

$ {parameter%word}

$ {parameter %% word}

單詞被擴展以產生一個模式,就像文件名擴展一樣。 如果該模式與參數的擴展值的結尾部分匹配,則擴展結果是刪除了最短匹配模式( %大小寫)或最長匹配模式( %%大小寫)的參數值。 如果parameter為@* ,則將模式去除操作依次應用於每個位置參數,並且擴展為結果列表。 如果parameter是一個用@*下標的數組變量,則將模式刪除操作依次應用於數組的每個成員,並且擴展為結果列表。

因此,如果$1擴展為text.tex${1%.tex}擴展為text

您可以為腳本提供參數,例如:

myscript one two three

這些參數被分配給位置參數$1$2$3 在上面的示例中,將$1分配給one ,將$2分配給two${1%.tex}.asy 。代碼${1%.tex}.asy僅對變量$1 :它返回帶有后綴.tex的字符串,並將其替換掉與.asy

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM