Unix脚本如何将for循环输出值用逗号拼接存入单个变量
实现方案
你可以基于现有代码做少量调整,在循环中逐次拼接结果到两个变量中即可,修改后的完整代码如下:
export input=$1 length=${#input} # 初始化两个存储结果的变量 varA="" varB="" for (( i=1; i<=length; i++ )); do current_len=$(( length - i + 1 )) eachinput=${input:0:$current_len} echo "each input : $eachinput" # 拼接无引号的格式1结果 if [ -z "$varA" ]; then varA="$eachinput" else varA="${varA},${eachinput}" fi # 拼接带单引号的格式2结果 if [ -z "$varB" ]; then varB="'${eachinput}'" else varB="${varB},'${eachinput}'" fi done # 可按需调用两个变量,此处仅做演示输出 echo "varA = $varA" echo "varB = $varB"
运行验证:当传入参数为123456时,输出结果完全匹配你需要的两种格式:
- 格式1:
varA = 123456,12345,1234,123,12,1 - 格式2:
varB = '123456','12345','1234','123','12','1'
内容的提问来源于stack exchange,提问作者dcd
相关产品推荐
相关产品推荐

