打印字符串数组 - Shell 脚本
Print array of strings - Shell Script
亲爱的,
简单的问题,我有一个具有以下值的 shell 变量,
myarr=["Life","is","good","when","you","learning"]
这是一个字符串数组!这是我想要打印它的方式。另外,我需要处理一个循环,因为这些元素中的每一个都会被传递给一个函数来处理字符串
预期输出
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
请注意,这也会扩展 globs:
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
亲爱的,
简单的问题,我有一个具有以下值的 shell 变量,
myarr=["Life","is","good","when","you","learning"]
这是一个字符串数组!这是我想要打印它的方式。另外,我需要处理一个循环,因为这些元素中的每一个都会被传递给一个函数来处理字符串
预期输出
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
请注意,这也会扩展 globs:
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