shell - korn shell 数组中的负值问题
问题描述
当我尝试创建一个包含负值的数组时,它会引发以下错误。
#!/usr/bin/ksh
set -A sre_act_val -0.1429999999999998 0.44700000000000006
echo "${sre_act_val[1]}"
echo "${sre_act_val[0]}"
错误:
set: -0: unknown option
set: -.: unknown option
set: -1: unknown option
set: -4: unknown option
解决方案
问题是 ksh 将以破折号开头的任何内容解释为选项(至少对于set
),因此它读取-0.143
为一系列选项:0
、.
、1
、4
和3
。
为了解决这个问题,您可以--
在任何数组元素之前使用来告诉 ksh 停止解释参数。这记录在man
ksh 的页面中,在set
内置的部分中。
set -A sre_act_val -- -0.1429999999999998 0.44700000000000006
echo "${sre_act_val[@]}" # output: -0.1429999999999998 0.44700000000000006
推荐阅读
- python - matplotlib FuncAnimation 不会在按钮按下小部件事件时启动
- python - `peewee`如何获取外键的父模型
- codeigniter - Codeigniter:错误不能使用 CI_DB_mysqli_result 类型的对象作为数组
- html - 如何使图标和按钮具有相同的ID?
- javascript - 数组未在地图内呈现
- javascript - 我想要一种方法来使用另一个html代码在同一页面上调用js中存在的html代码
- java - 无法注册此节点:发送注册请求时出错:将 Selenium Grid 节点连接到 Grid Hub 失败
- node.js - 将 NodeJs 应用程序移动到新服务器导致 npm install 出错
- reactjs - React 路由器:exact 不适用于 TypeScript
- sql - 根据表中的值运行动态 sql,然后将它们附加到相同的结果集