簡體   English   中英

打印字符串數組 - Shell 腳本

[英]Print array of strings - Shell Script

親愛的,

簡單的問題,我有一個具有以下值的 shell 變量,

myarr=["Life","is","good","when","you","learning"]

它是一個字符串數組。 這是我想要打印它的方式,另外,我需要處理一個循環,因為這些元素中的每一個都將傳遞給 function 來處理字符串

預計 Output

Life \
is \
good \
when \
you \
learning

您可以創建一個 for 循環來打印數組的所有元素。

# declare your array variable
declare -a myarr=("Life","is","good","when","you","learning")

# get length of an array
length=${#myarr[@]}

for (( j=0; j<${length}; j++ ));
do
  printf "${myarr[$j]}\n"
done

數組文字在 shell 中聲明如下:

myarr=(Life is good when you learning)

如果你有這樣一個數組,你可以像這樣將它傳遞給printf (注意擴展周圍的"double quotes" ):

printf "%s\n" "${myarr[@]}"
Life
is
good
when
you
learning

如果聲明數組時單個元素中有空格,則使用"double quotes"

myarr=("Life is good" when you learning)
printf "%s\n" "${myarr[@]}"
Life is good
when
you
learning

您也可以只創建一個字符串值,然后不使用將拆分字符串的引號:

mys="Life is good when you learning"
printf "%s\n" $mys
Life
is
good
when
you
learning

請注意,這也會擴展 glob:

mys="Life is good when * you learning"
printf "%s\n" $mys
Life
is
good
when
...
a bunch of files from the glob in the cwd
...
file
you
learning

暫無
暫無

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

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