shell 实现 for in 同时两个循环列表

沐紫之蓝 2016-03-08 04:20:06
shell 实现 for in 同时两个循环列表


lis_a="a b c"
lisa="A B C"

想在shell脚本里输出以下内容

a的大写为A
b的大写为B
c的大写为C

不知道说没说明白,就是在一个循环里同步从两个列表里取对应的两个值
...全文
2954 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nswcfd 2016-03-10
  • 打赏
  • 举报
回复
数组的元素个数 ${#array[@]} [~]$ a=(a b c d) [~]$ echo ${a
  • } a b c d
  • [~]$ echo ${#a
  • } 4
nswcfd 2016-03-09
  • 打赏
  • 举报
回复
用数组会简单一些 from=(a b c d) to=(A B C D) for i in 0 1 2 3; do echo "${from[i]} -> ${to[i]}" done PS,字符串到数组的切换 list="a b c" array=($list)
常书 2016-03-09
  • 打赏
  • 举报
回复
未知长度,可以考虑以下实现方式 文件list_a内容为a b c d... 文件list_b内容为A B C D...

#!/bin/sh

cnt=0

while true
do
    let cnt++
    stra=`awk -v str=$cnt '{print $str}' list_a`
    strb=`awk -v str=$cnt '{print $str}' list_b`

    if [ "$stra" = "" ];then
    break;
    fi

    echo $stra的大写为$strb
done
沐紫之蓝 2016-03-09
  • 打赏
  • 举报
回复
引用 1 楼 nswcfd 的回复:
用数组会简单一些 from=(a b c d) to=(A B C D) for i in 0 1 2 3; do echo "${from[i]} -> ${to[i]}" done PS,字符串到数组的切换 list="a b c" array=($list)
数组? 写shell脚本就没用过数组,如果列表未知长度,数组能未知次数循环么

23,127

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧