该脚本接受各种字符长度的二进制输入。
例如输入可以是00011010或001101001101101110111011(最多9组8位) 我已经成功地将它们分割为 8 位。
input_space=$(echo "$input" | sed 's/.\{8\}/& /g')
如何将每个8位组存储为单独的动态变量?
即var1=00110100 var2=11011011 var3=10111011
您可以将 8 位集合存储在数组中,然后动态访问它们。
#!/bin/bash
input="001101001101101110111011"
# Split the input into 8-bit sets and store them in an array
input_space=($(echo "$input" | sed 's/.\{8\}/& /g'))
# Print each 8-bit set as a separate dynamic variable
for i in "${!input_space[@]}"; do
var_name="var$(($i+1))"
declare "$var_name=${input_space[$i]}"
echo "$var_name=${!var_name}"
done
上面的脚本:
input_space
数组中,然后declare
命令迭代数组以创建动态变量(var1、var2、var3 等)。 ${!var_name}
符号用于间接引用动态变量的值。 参考