Korn Shell中SQL导出的逗号分隔字符串赋值给指定变量并导出
在Korn Shell中解析CSV字符串并导出自定义命名变量
这事儿在Korn Shell里其实挺好办的,我给你拆解一下具体步骤,刚好匹配你给出的1,2018-05-16,abc,123这个CSV字符串场景:
第一步:用IFS结合read分割字符串到自定义变量
Korn Shell里的IFS(内部字段分隔符)可以帮我们指定分隔符,配合read命令就能把CSV的每个值精准分配给你想要的变量名:
# 先确认你的SQL输出字符串已经正确赋值 SQLOUTPUT_STRING="1,2018-05-16,abc,123" # 临时将IFS设为逗号,用read读取字符串到自定义变量 # -r选项避免read把反斜杠当作转义字符,更安全 IFS=, read -r order_id order_date product_code product_value <<< "$SQLOUTPUT_STRING"
这里我用了order_id、order_date这类更贴合业务的自定义变量名,你可以根据自己的需求改成任意名字,只要变量数量和CSV的字段数对应上就行。
第二步:导出变量供其他脚本调用
如果要让其他脚本也能访问这些变量,必须用export命令把它们标记为环境变量:
# 导出所有需要共享的变量 export order_id order_date product_code product_value
注意事项
- 如果是在脚本里执行这段逻辑,其他脚本必须用
source(或.)来加载你的脚本,而不是直接运行脚本。直接运行会在子shell里执行,变量不会传递到父环境:# 在另一个脚本中加载变量 . ./your_variable_script.ksh # 之后就能直接使用$order_id、$order_date等变量了 - 这个方法适用于没有嵌套逗号、没有引号包裹字段的简单CSV场景。如果你的SQL输出有复杂格式(比如字段里包含逗号),可能需要用
awk这类工具来处理更复杂的CSV解析。
内容的提问来源于stack exchange,提问作者Vardhan
相关产品推荐
相关产品推荐

