arrays - 使用 for 循环的数组不计算元素 Bash
问题描述
我正在学习用 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
我知道我做错了什么,但我不知道是什么,你能帮帮我吗?
提前致谢
解决方案
将 替换为*
a@
以使用数组的元素填充数组,而不是将整个数组视为一个元素:
- arr1=("$rem" "${arr1[*]}")
+ arr1=("$rem" "${arr1[@]}")
*
扩展为一个单词,@
扩展为单词列表。
推荐阅读
- pdf - PDF 属性 AL
- ios - 后台下载无法得到错误响应
- ubuntu - 无法访问 Ubuntu 服务器 (DigitalOcean)
- regex - fail2ban-正则表达式不匹配
- javascript - JavaScript:从 addEventListener 函数中读取目录
- c++ - 为什么 std::make_unique 不能推断大括号初始化参数的类型?
- android - 字段需要 API 级别 29(当前最低为 16):android.app.TaskInfo#topActivity
- rabbitmq - 如何提高 RabbitMQ 联邦率?
- ruby-on-rails - Active Model Serializer 不呈现集合的根键 - 版本 - 0.10.6
- asp.net - 无法运行 Visual Studio 部署的网站 - GET http://localhost:8080/_configuration/MyApp 404?