我有它的工作,但不能相信,語法應該是瘋了。我想要做的就是將所有以第三個開始的參數都放入數組中。bash語法瘋狂 - 如何獲得第三個直到最後一個命令行參數到一個數組
E.g.
script.sh foo bar value1 value2 value3
應該給我一個包含value1,value2和value3的數組。這個數組是用來提供一個新的函數的參數:
./runpy /dsnormalize.py "${values[@]}"
這工作:
args=("[email protected]")
length=$((${#args[@]}-2))
values=(${args[@]:$length:2})
請告訴我這是不正確的方法。我通常以包含所有值的字符串結束。
bash如何處理字符串和整數呢? 並且是$ {}和$()之間的區別?
感謝您的幫助, 卡斯滕
這沒有奏效。我應該補充說我使用參數來調用不同的函數。我更新了我的帖子。 – Karsten
@Karsten:在這種情況下,你不需要數組。只需'./runpy /dsnormalize.py「$ {@:3}」'。如果你嘗試過,並且不符合你的期望,那麼你必須比「它沒有工作」更精確。 (順便說一下,你不是指'./dsnormalize.py') – rici
嗨,「$ {@:3}」工作。謝謝!我如何將它保存在一個變量中並使用這個變量:normalize.py「$ {columns [@]}」? – Karsten