代码拉取完成,页面将自动刷新
同步操作将从 bingios/pure-bash-bible-zh_CN 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# sh
split() {
# Usage: split "string" "delimiter"
IFS=$'\n' read -d "" -ra arr <<< "${1//$2/$'\n'}"
printf '%s\n' "${arr[@]}"
}
语法说明:
使用范例: split "aa--bb--cc--dd--n n" "--"
IFS=$'\n'
"${1//$2/$'\n'}"
\n
换行符替换所有匹配第二个参数字段,详见${ } 的一些特异功能
"aa--bb--cc--dd--n n"
就变成了"aa\nbb\ncc\ndd\nn n"
(注意:空格没有被替换)<<<
<<<
被称作Here String,是here document的一种定制形式;read -d "" -ra arr
此句就是将字符串根据IFS进行分割,并将分割后的字段赋值给数组arr
那么下面三个IFS的区别是什么呢?
IFS='\n'
// 将字符\和字符n作为IFS的换行符。IFS=$'\n'
// 真正的使用换行符做为字段分隔符。IFS='\n':;"
// 这个赋值会将反斜杠、n、冒号、分号和双引号作为字段分隔符。-a:将分裂后的字段依次存储到指定的数组中,存储的起始位置从数组的index=0开始。
-d:指定读取行的结束符号。默认结束符号为换行符。
-n:限制读取N个字符就自动结束读取,如果没有读满N个字符就按下回车或遇到换行符,则也会结束读取。
-N:严格要求读满N个字符才自动结束读取,即使中途按下了回车或遇到了换行符也不结束。其中换行符或回车算一个字符。
-p:给出提示符。默认不支持"\n"换行,要换行需要特殊处理,见下文示例。例如,"-p 请输入密码:"
-r:禁止反斜线的转义功能。这意味着"\"会变成文本的一部分。
-s:静默模式。输入的内容不会回显在屏幕上。
-t:给出超时时间,在达到超时时间时,read退出并返回错误。也就是说不会读取任何内容,即使已经输入了一部分。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。