加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 将字符串列表传递给for循环

发布时间:2020-12-15 22:27:08 所属栏目:安全 来源:网络整理
导读:如何在bash中传递列表? 我试过了 echo "somedifferentlines" | for i ; do echo do something with $i; done 但这不起作用.我也试图找到与男人的解释,但没有男人 编辑: 我知道,我可以使用while,但我想我曾经看过一个解决方案,因为他们没有定义变量,但可以
如何在bash中传递列表?

我试过了

echo "some
different
lines
" | for i ; do 
  echo do something with $i; 
done

但这不起作用.我也试图找到与男人的解释,但没有男人

编辑:

我知道,我可以使用while,但我想我曾经看过一个解决方案,因为他们没有定义变量,但可以在循环中使用它

解决方法

这可能有用,但我不推荐它:

echo "some
different
lines
" | for i in $(cat) ; do
    ...
done

$(cat)将扩展stdin上的所有内容,但如果echo的其中一行包含空格,则会认为这是两个单词.所以最终可能会破裂.

如果要在循环中处理单词列表,则更好:

a=($(echo "some
different
lines
"))
for i in "${a[@]}"; do
    ...
done

说明:a =(…)声明一个数组. $(cmd …)扩展为命令的输出.它仍然容易受到空白的影响,但如果你引用得当,这可以修复.

“${a [@]}”扩展为数组中正确引用的元素列表.

注意:for是一个内置命令.请使用帮助(在bash中).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读