【问题标题】:Array using for loop doesn't count elements Bash使用 for 循环的数组不计算元素 Bash
【发布时间】:2019-01-30 16:54:22
【问题描述】:

我正在学习使用 bash 编码,我想将十进制数转换为二进制数组,问题是我无法计算数组中的元素个数。

我的代码是:

read -p 'Ingrese primer numero: ' numero_1

function binario(){
 num=$1
 arr1=()
 i=0
 while [ $num -ne 0 ]
 do
  div=$(($num/2))
  rem=$(($num%2))
  num=$div
  arr1=("$rem" "${arr1[*]}")
  echo ${arr1[*]}
 done
 echo "array 1 es ${arr1[*]}"
 echo "largo dentro de la funcion ${#arr1[*]}"
}
binario $numero_1

计数不起作用。在我的控制台中,我获得了以下信息:

Ingrese primer numero: 56
array 1 es 1 1 1 0 0 0
largo dentro de la funcion 1

我知道我做错了什么,但我不知道是什么, 你能帮帮我吗?

提前致谢

【问题讨论】:

    标签: arrays linux bash shell loops


    【解决方案1】:

    * 替换为@ 以使用数组元素填充数组,而不是将整个数组视为一个元素:

    - arr1=("$rem" "${arr1[*]}")
    + arr1=("$rem" "${arr1[@]}")
    

    * 扩展为一个单词,@ 扩展为单词列表。

    【讨论】:

      猜你喜欢
      • 2019-09-16
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-02
      • 1970-01-01
      • 2020-01-28
      • 2018-04-25
      相关资源
      最近更新 更多