【发布时间】:2020-08-16 17:39:37
【问题描述】:
我正在尝试从我的代码中打印出一些数据作为 bash 中的调试工具。 所以我想将所有数据存储在一个数组中,以便稍后打印出来。
到目前为止,我已经用一些参数设置了 printf:
DATA_ARRAY+=("\n%-5s %-10s %-15s %-10s %-5s %-5s %-5s %-120s" "data1" "data2" "data3" "data4" "data5" "data6" "data7" "data8") 在这种情况下数据是随机文本。这将在终端中为我提供一个不错的基于列的文本。
但其他数据可能看起来更简单:
DATA_ARRAY+=("\n%-s" "[Remove] \ID: $dataID Data missing -> Removing $dataID")
我的最后一行是用 printf 打印所有内容
printf "${REMOVE_DATA_ARRAY[*]}".
所以我现在的问题是,当我打印它时,所有数据都不会保留结构,它会对“s”和“i”等字符做出反应。
所以我的问题是,是否可以在不转义每个字符 (s,i) 的情况下执行此操作并使用上面给定的结构打印孔数组。
我不想一次打印每个部分。
如果我这样做,程序确实可以工作
printf ("\n%-5s %-10s %-15s %-10s %-5s %-5s %-5s %-120s" "data1" "data2" "data3" "data4" "data5" "data6" "data7" "data8")
直接,但这不是我想做的。
【问题讨论】: