我想擴展一個參數兩次,而${$PARAM}
不起作用。在Bash腳本中雙參數擴展
例如,如果設置了兩個變量爲文件名,然後希望通過這些變量循環,並擴大到它們的文件名:
我怎樣才能到從這些參數訪問的文件名for循環?
即,擴大到input1.inp
和input2.inp
。
我想擴展一個參數兩次,而${$PARAM}
不起作用。在Bash腳本中雙參數擴展
例如,如果設置了兩個變量爲文件名,然後希望通過這些變量循環,並擴大到它們的文件名:
我怎樣才能到從這些參數訪問的文件名for循環?
即,擴大到input1.inp
和input2.inp
。
你已經差不多:只需使用"${!input_param}"
而不是${$input_param}
。
在這種情況下,引用不起作用,但這是一個好習慣。
雙引號–擴展到每個變量名不同的字之間使用時要注意的差異來${[email protected]}
,這–,而"${!INPF_*}"
沒有。你幾乎總是想要"${[email protected]}"
。看到區別:
$ for var in "${!INPF_*}"; do echo "$var"; done
INPF_1 INPF_2
$ for var in "${[email protected]}"; do echo "$var"; done
INPF_1
INPF_2
查看manual的各種參數展開。
如果您使用單個陣列,這會更容易。 'infp =(input1.inp input2.inp)' –
不過,您要做的事情叫做間接擴展。我們已經有覆蓋它的問題和答案。 –