linux–Shell脚本 – 将字符串拆分为数组时检查长度

linux–Shell脚本 – 将字符串拆分为数组时检查长度,第1张

概述我正在使用bash脚本,我试图在内部拆分一个带有url的字符串,例如:str=firsturl.com/123416 secondurl.com/634214 所以这些URL由空格分隔,我已经使用IFS命令拆分字符串,它工作得很好,我可以通过以下两个URL迭代:for url in $str; do #some stuff done 但我的问题是我需

我正在使用bash脚本,我试图在内部拆分一个带有url的字符串,例如:

str=firsturl.com/123416 secondurl.com/634214

所以这些URL由空格分隔,我已经使用IFS命令拆分字符串,它工作得很好,我可以通过以下两个URL迭代:

for url in $str; do    #some stuffdone

但我的问题是我需要得到这个拆分有多少项,所以对于str示例它应该返回2,但使用这个:

${#str[@]}

返回字符串的长度(当前示例为40),我的意思是字符数,当我需要得到2时.

使用计数器进行迭代也不起作用,因为在迭代数组之前我需要元素的数量.

有什么建议?

最佳答案将字符串拆分为数组并使用它:

str="firsturl.com/123416 secondurl.com/634214"array=( $str )echo "Number of elements: ${#array[@]}"for item in "${array[@]}"do  echo "$item"done

但是,您永远不应该有空格分隔的字符串列表.如果你从其他命令逐行获取它们,你可以使用while循环:

while IFS='' read -r urldo  array+=( "$url" )done

对于正确编码的URL,这可能不会有太大的区别,但一般来说,这将阻止glob扩展和一些空白问题,而且这是其他命令(如wget -i)使用的规范格式. 总结

以上是内存溢出为你收集整理的linux – Shell脚本 – 将字符串拆分为数组时检查长度全部内容,希望文章能够帮你解决linux – Shell脚本 – 将字符串拆分为数组时检查长度所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1046501.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存