bash 代码有问题

2023-12-26

function dec_to_bin {   

if [ $# != 2 ]  
then
    return -1
else
    declare -a ARRAY[30]
    declare -i INDEX=0
    declare -i TEMP=$2
    declare -i TEMP2=0 

    while [ $TEMP -gt 0 ]
    do
        TEMP2="$TEMP%2"
        #printf "%d" "$TEMP2"
        ARRAY[$INDEX]=$TEMP2
        TEMP=$TEMP/2
        INDEX=$[ $INDEX + 1 ]  #note

    done

    for (( COUNT=INDEX; COUNT>-1; COUNT--)){

        printf "%d" "${ARRAY[$COUNT]}"  <<LINE 27
        #echo -n ${ARRAY[$COUNT]}       <<LINE 28
    }
fi
 }

为什么这段代码给出这个错误

q5.sh: line 27: ARRAY[$COUNT]: unbound variable

如果未注释,第 28 行会出现相同的错误

还有一个问题,我对 bash 脚本中使用的 b/w '' 和 "" 的区别感到困惑,任何指向一些好文章的链接都会有所帮助。


它对我来说很好用,除了你做不到return -1。通常的误差值为1.

错误消息是因为您有set -u你正在开始你的for循环于INDEX代替INDEX-1 (${ARRAY[INDEX]}因为你的方式而永远是空的while循环被写入)。既然你正在使用%d在你的printf语句,空变量将打印为“0”(如果set -u未生效)。

另外,声明一个数组的大小是没有意义的。 Bash 中的数组是完全动态的。

我会编码for循环测试0(因为-1看起来很混乱,因为它不能是数字索引数组的索引):

for (( COUNT=INDEX - 1; COUNT>=0; COUNT--))

此表单已弃用:

INDEX=$[ $INDEX + 1 ]

使用这个代替:

INDEX=$(( $INDEX + 1 ))

or this:

((INDEX++))

我还建议养成使用小写或混合大小写变量的习惯,以减少变量名与 shell 变量发生冲突的机会。

你没有使用$1为了任何东西。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bash 代码有问题 的相关文章

随机推荐

  • SwiftUI 以编程方式从可表示返回到视图

    我正在尝试在新的 swift ui 应用程序中设置 qr 阅读器 我可以用这一行加载 UIKit qr 阅读器视图 NavigationLink destination QRCodeScan Text Scan QR 这是我的 UIView
  • Spring MVC 表单输入值始终为 null

    我是 Spring MVC 的新手 但对 Java 的 Web 开发并不陌生 我正在尝试创建一个简单的表单 gt 控制器示例 我有一个表单 一个表单控制器 在下面粘贴的上下文 XML 中配置 和我的模型 一个简单的 bean 无论如何 当我
  • 分析和优化游戏 android

    我正在制作我的第一个 Android 游戏 它将是一个使用 opengl es 的 3D 街机游戏 我已经为此工作了很长一段时间 主要是优化引擎以适应未来的灵活性 无论如何 现在我已经完全完成了游戏功能和所有漂亮的东西 但它在不是我的调试手
  • 8.3 之后无法在 Spotlight 中使用键盘扩展

    自从我将键盘扩展项目更新到 Swift 1 2 并将设备更新到 iOS 8 3 后 我无法再在 Spotlight 搜索中使用我的扩展 如果我按住 地球 键 则我的分机不在列表中 如果进入 Spotlight 时它是活动键盘 则会使用系统键
  • 在 Jersey 2.22.2 中获取客户端 ip

    我正在尝试访问正在调用我的其余服务器的客户端 IP 但我只得到 null 作为响应 网络服务器正在运行 我可以从网络浏览器访问它 我尝试过 Context HttpServletRequest 并且还与 Context ContainerR
  • 为什么每个线程在扭曲内都有自己的指令地址计数器?

    CUDA 中的扭曲始终包含 32 个线程 并且所有这 32 个线程都运行相同的指令 https stackoverflow com questions 41009824 how to understand all threads in a
  • 将单元测试慢慢集成到项目中所需采取的步骤

    我目前正在与另一名带薪实习生一起完成一个即将完成的项目 由于这个项目是从一个合作社传承到另一个合作社 所以一路上采取了糟糕的做法 并将测试留到最后 我决定编写单元测试以在测试时学习新东西 然而 我正在开发一个 3 层 紧密耦合的应用程序 它
  • 使用块时的 iPhone EXC_BAD_ACCESS

    我正在尝试使用块创建一个简单的回调 我有一个 MainViewController 其中 addSubView 另一个 DatePickerViewController view 我创建了一个像这样的块 typedef void DateC
  • Heroku 上出现“PGError: FATAL: termination connection due to Administrator command” 的原因是什么?

    我在 Heroku 上有一个 Rails 应用程序 用户可以登录 我定期收到此异常 用户会话控制器 ActiveRecord 语句无效 PGError FATAL 正在终止 由于管理员的连接 命令 n服务器关闭连接 出乎意料 n t这可能意
  • emacs 可以为我重新缩进一大块 HTML 吗?

    在 emacs 中编辑 HTML 时 有没有一种方法可以自动漂亮地格式化标记块 更改如下 table tr td blah td tr table 到这个 table tr td blah td tr table 你可以做sgml pret
  • Kapt 无法与 OpenJDK 16 正常工作

    我有一个使用 Kotlin 1 5 0 和 Kapt 作为映射结构的应用程序 我已将 JDK 更新到 16 但出现以下编译错误 Failed to execute goal org jetbrains kotlin kotlin maven
  • 具有破碎阴影效果的路径

    我希望图像足够清晰 我有一个带有阴影效果的三角形 看起来不太好 似乎不知何故被打破了 任何帮助将不胜感激 Update 矩形和路径必须分开 XAML
  • android 在 jenkins 上构建发布 apk,而不以纯文本形式存储我的密码

    我需要能够使用 Jenkins 作业构建我的 apk 的发行版本 通过阅读以下SO问题 如何使用 Gradle 创建发布签名的 apk 文件 https stackoverflow com questions 18328730 how to
  • 使用 boost::regex_search 忽略大小写

    你如何使用boost regex search使用 C 中的忽略大小写标志或常量 请发布一个简单的例子 Thanks 你需要这样的东西 boost regex regex your expression here boost regex i
  • 如何使用直接状态访问将元素缓冲区数组“绑定”到顶点数组对象?

    对于其他缓冲区 有如下函数 glVertexArrayVertexAttribOffsetEXT this gt handle vao handle vbo getHandle vbo handle index specifies the
  • 在 JavaScript 中检索 R 对象属性

    我有一个包含 100 个观察值的双变量数据集 我使用了六边形分箱 最终得到了 26 个六边形分箱 为了保存 26 个六边形箱中每个箱中 100 个观测值的行 我使用了base attrR 中的函数 在下面的代码中 这是在以下位置完成的 at
  • 使图表有效地呈现负值

    该线程是以下线程的延续 尝试制作带有条形图和差异线 值的动态 D3 图表 https stackoverflow com questions 67638126 trying to make dynamic d3 chart with bar
  • net::ERR_CONNECTION_REFUSED 离子

    我正在使用 ionic 开发一个应用程序 我可以从 webApi 服务器检索数据并将它们显示在导航器上ionic serve但是当我尝试在模拟器上执行它时 ionic run android l c我收到此错误 net ERR CONNEC
  • 如何使用显式 NSLayoutManager、NSTextStorage、NSTextContainer 以编程方式设置 NSTextView?

    按照苹果文档 我试图设置一个简单的NSTextView通过它的两个构造函数方法 我将下面的代码放在viewDidAppear内容视图的视图控制器的方法 textView 是一个实例NSTextView frameRect 是内容视图的框架
  • bash 代码有问题

    function dec to bin if 2 then return 1 else declare a ARRAY 30 declare i INDEX 0 declare i TEMP 2 declare i TEMP2 0 whil