簡體   English   中英

Bash遍歷自定義字符串列表

[英]Bash looping through custom list of strings

我正在嘗試做一個嵌套循環,其中之一是對數組進行索引,但是我也想遍歷一個自定義的字符串列表,這些字符串恰好只是字母C和I,而中間沒有任何字母。 我的問題是,遍歷此自定義字母/字符串列表的正確語法是什么? 我看到有些人使用方括號{}來指定,我在做什么錯?

abc=(thing1 thing2 thing3 thing4)

for j in C I; do
  for i in 0 1 2 3; do
    echo "grep 'ITEM_${abc[i]}' /folder1/folder2/THING_$jS_$i.sorted/585_10$jS_$i.sorted.gtf"
  done
done
  • 您的引號是錯誤的:不要在變量周圍使用單引號
  • ${var}將變量與周圍的文本分開,例如:/ /THING_${j}S_${i}.sorted ${var} /THING_${j}S_${i}.sorted ${var} /THING_${j}S_${i}.sorted ${var} /THING_${j}S_${i}.sorted

了解如何在shell中正確報價,這非常重要:

“雙引號”是每個包含空格/元字符和每個擴展名的文字: "$var""$(command "$var")""${array[@]}""a & b" 使用'single quotes'表示代碼或使用$'s: 'Costs $5 US'ssh host 'echo "$HOSTNAME"' 參見http://mywiki.wooledge.org/Quotes
http://mywiki.wooledge.org/Arguments
http://wiki.bash-hackers.org/syntax/words

由於其他用戶不會回答該問題,而是想讓行列在正確的報價上,而實際上並不能解決原始問題,因此答案很簡單,您需要創建一個僅由C和您可以為要編輯的文件的每個實例調用I。

暫無
暫無

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

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