将单个变量分配给数组(就地)

2024-04-24

考虑以下代码:

a=(1 2 3)
a='seven'

export a
declare -p a

输出(来自declare) is:

declare -ax a='([0]="seven" [1]="2" [2]="3")'

So a是一个数组。问题:

  1. 如何改变第二行,所以a将不再是一个数组,而是一个带有值的简单变量seven?我正在寻找一个单线,没有unset etc.
  2. 将变量分配给数组仅替换第一个元素,而不是整个数组。此行为在哪里指定?

注意:Bash v.3.2.48 (OS X)。

(我已经回答了这个问题 https://stackoverflow.com/questions/18568933/joining-array-into-path-in-bash-on-osx/今天,这让我思考这个问题,我正在寻找一个更干净的解决方案)。


Edit:我正在寻找一个:

a=(1 2 3)

/* One line here please :) */
unset a
a='seven'

export a
declare -p a

但没有做明确的unset。在特殊情况下很重要a实际上是一个PATH变量(参见this https://stackoverflow.com/questions/18568933/joining-array-into-path-in-bash-on-osx/问题)。


你需要使用unset.

手册中的第一句话(如下所示)将解释这一点:

a='seven'

when a之前是一个数组是完全相同的说:

a[0]='seven'

引用自manual http://www.gnu.org/software/bash/manual/bashref.html#Arrays:

当分配给索引数组时,如果可选下标是 提供后,该索引被分配给;否则索引 分配的元素是语句 plus 分配的最后一个索引 一。索引从零开始。


The unset内置函数用于销毁数组。unset 名称[下标]销毁索引处的数组元素下标。必须注意 避免由文件名扩展引起的不必要的副作用。未设置名称, 其中 name 是一个数组,删除整个数组。下标为‘*’ or ‘@’还删除整个数组。

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

将单个变量分配给数组(就地) 的相关文章

  • 在Python中沿特定轴广播操作

    在Python中 假设我有一个正方形numpy matrix X 尺寸n x n我有一个numpy vector a尺寸的n 很简单 我想执行广播减法X a 但我希望能够指定沿哪个维度 以便我可以指定沿轴 0 或轴 1 进行减法 如何指定轴
  • Bash 变量:区分大小写?

    Bash shell 脚本区分大小写吗 是可变的date与DATE 是的 它区分大小写 就像 UNIX 的其余部分一样 date and DATE是两个不同的变量 makefile and Makefile是两个不同的文件 h and H是
  • 查找-exec选项

    比如说 我想找到一些文件并执行 chmod 并使用另一个命令对其执行某些操作 例如 find name txt exec chmod 666 cp dst it says find missing argument to exec 我该如何
  • 将数组内爆为来自 mysql 查询的逗号分隔字符串

    在过去的 1 1 2 天里 我一直在尝试将 16 行 id 存储到一个字符串中 并用逗号分隔每个 id 我得到的数组来自 MySQL 我得到的错误是 implode 函数 传递了无效参数 str array string while row
  • Java ArrayList,在一行中获取多种类型(int、String 等)的用户输入

    我正在努力提高 Java 水平 我遇到的一个问题是获取用户输入 所有这些都在一行中 如下所示 System out println Please input numbers that you would like to work with
  • Bash 将字符串转换为时间戳

    我有一个格式的字符串20141225093000这代表Dec 25 2014 09 30 00我想将原始格式转换为 unix 时间戳格式 以便我可以对其进行时间操作 我如何在 bash 中执行此操作 我可以轻松地解析出这些值expr但我希望
  • Python、cPickle、酸洗 lambda 函数

    我必须像这样腌制一组对象 import cPickle as pickle from numpy import sin cos array tmp lambda x sin x cos x test array tmp tmp tmp tm
  • Angular js中两个$scope数组的区别

    有没有办法返回 angularjs 范围内存在的两个数组之间的差异 例如 scope user1 a b scope user2 a b c d 这两者的区别应该给我另一个 scope user3 c d Underscore js对此有不
  • 3D 数组如何在 C 中存储?

    据我所知 C 中的数组是按行优先顺序分配的 因此 对于 2 x 3 数组 0 1 2 3 4 5 存储在内存中为 0 1 2 3 4 5 但是 如果我有一个 2 x 3 x 2 数组怎么办 0 1 2 3 4 5 and 6 7 8 9 1
  • 数组中的唯一条目

    我有以下内容将前 10 个 URL 存储到会话中 function curPageURL pageURL http if SERVER HTTPS on pageURL s pageURL if SERVER SERVER PORT 80
  • 如何通过单击按钮从反应状态挂钩数组中删除对象

    我正在尝试制作一个按钮 根据传递的索引从数组 即状态 中删除一个对象 我已经尝试了很多 但我的方法都不起作用 所以这是代码 希望我可以找人帮忙 state const items setItems useState name quantit
  • 如何获取由 1D NumPy 数组中的值表示的索引处值为 1 的 2D NumPy 数组 (Python)

    如何在 Python 中获取由 1D np array 中的值表示的索引处值为 1 的 2D np array Example 1 2 5 1 2 应转换为 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0
  • 多维数组(如 C/C++ 中的数组)是不规则数组的特殊情况吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我和一个哥们讨论了C 和C多维数组是否是不规则数组的特例 一种观点是 多维数组不是参差不齐的数组 因为多维数组的每个元素具有相同的大小 在参差不齐的数
  • 将二维数组绑定到数据网格中

    所以我的情况是我想从数据库中的两个字段填充一个二维数组 我在为数组分配数据库字段值时遇到问题 第二个是在数据网格中显示数组 我已经编码了 dgv2 Datasource myArray 但它仍然返回错误消息 这是我的代码 Dim msql
  • 列表项未正确删除(React)

    如果我的笔记应用程序能提供一些帮助 我将不胜感激 假设我的笔记列表中有 3 个笔记 我想删除列表顶部的注释 无论我尝试删除哪一个 总是首先删除列表最底部的注释 我检查了 React 控制台 应用程序组件状态中的注释数组表明它已正确删除 但从
  • 为什么在二维数组中 a 和 *a 指向相同的地址? [复制]

    这个问题在这里已经有答案了 我只是想了解二维数组是如何实现的以及内存分配是如何发生的 所以我对给定的 c 程序有些疑问 为什么 a 和 a 给出相同的地址 include
  • 在 UNIX 时间戳 Shell/Bash 中将日期与时区转换

    我需要将日期从格式为 yyyy mm dd hh mm ss TZ 的字符串转换为 UNIX 时间 TZ 时区 到目前为止我所做的是将没有时区的 yyyy mm dd hh mm ss 格式的日期转换为时间戳 dateYMD 2019 2
  • 有效地减去不同形状的 numpy 数组

    使用 numpy 出色的广播规则 您可以减去形状 3 数组v来自形状 5 3 数组X with X v 结果是一个形状 5 3 数组 其中每一行i是有区别的X i v 有没有办法减去形状 n 3 数组w from X使得每一行w从整个数组中
  • 如何将 Java 字节数组转换为 Scala 字节数组?

    我是 Scala 新手 目前正在从事一个涉及 Java 和 Scala 模块的项目 现在我想使用 byte 类型的参数从 Java 调用 Scala 方法 Scala 方法的签名为 def foo data Array Byte Java
  • C# 泛型中的通配符等效项

    假设我有一个通用类 如下所示 public class GeneralPropertyMap

随机推荐

  • 实体框架:唯一(非主键)父字段上的复合外键

    我有一个表需要通过其绑定到另一个表Id列 并按其第三个表 Id Code 列 我可以轻松地做SQL服务器同时使用主键和唯一索引 但不知道如何实现它实体框架 如果我把 Key 两列上的属性 那么我无法创建第一个关系 否则 如果我只申请一个 K
  • 适用于 Windows 的二进制 python 包(模块)的无人值守安装

    是否没有合理的方法来执行 Windows 二进制 python 包的脚本安装 不幸的是 似乎几个基本的 Windows python 软件包 如 pywin32 和 py2exe 只能以 EXE 形式提供 而不是以 MSI 形式提供 据我所
  • fopen() 在 Linux 上创建文件失败

    我正在尝试通过创建一个文件fopen 如下 但不创建该文件并让我 Can t create file P S 我在 Linux Ubuntu 上使用 LAMP 服务器 在创建该文件之前我已经尝试过以下命令 sudo chmod R 755
  • 陷入状态 Monad

    我想使用节点和唯一键的 IntMap 创建一个图形结构 这个话题已经被很好地涵盖了here https stackoverflow com questions 12941625 ids from state monad in haskell
  • python sqlite3更新不更新

    问题 为什么这个sqlite3语句没有更新记录 Info cur execute UPDATE workunits SET Completed 1 AND Returns WHERE PID AND Args pickle dumps Re
  • sql server 存储过程首次运行缓慢

    我有一个存储过程 每天在午夜过后运行九次 它不是一个理想的存储过程 但您知道它是怎样的 没有任何计划能够与现实接触 此存储过程通常需要大约一分钟的时间来运行 根据其处理的数据量给出或花费一些时间 然而 在给定早晨的第一次运行中 有时会花费大
  • PHP XML - 在特定位置插入 XML 节点

    我想在 XML 文件中的特定位置插入一个带有子节点的节点 我该怎么做 例如 如果我有一个像这样的 XML
  • 使用 strcpy_s 作为 TCHAR 指针(Microsoft 特定)

    我想知道哪个是正确的方法 tcscpy tchar pointer tcslen tchar pointer T Hello World or tcscpy tchar pointer tcsclen tchar pointer T Hel
  • iOS 8 核心数据堆栈 - 致命错误:在解包可选值时发现 nil

    我对 iOS 开发比较陌生 决定实现自己的 Core Data 堆栈 替换 Apple 的默认堆栈 我必须对我的代码进行更改 显然 并且能够弄清楚它 但在这种情况下我不能 这是我的代码 import UIKit import CoreDat
  • 将整数转换为数组

    我正在尝试将 C 中的整数转换为包含该数字的每个数字的数组 即如果我有 int number 5400 我怎样才能到达 int numberArray 4 where numberArray 0 0 numberArray 1 0 numb
  • 从需要 stdin 的子进程实时打印 stdout

    这是后续这个问题 https stackoverflow com questions 17395243 printing stdout in realtime from subprocess 但如果我想传递一个参数stdin to subp
  • Titanium SDK 在 Ubuntu 12.04 上无法识别 Titanium CLI、node、alloy 或 npm

    Titanium SDK 在 Ubuntu 12 04 上无法识别 Titanium CLI node alloy 或 npm 我按照此处的 Titanium SDK 安装说明进行操作 http docs appcelerator com
  • Application.Current.MainWindow 与 Window.GetWindow(this)

    我需要访问托管给定控件的窗口 this在下面的代码片段中 假设我的应用程序中只有一个窗口 以下哪条语句占用的资源较少 或者是否有更好的方法来做到这一点 Application Current MainWindow Window GetWin
  • sed:每N行后插入一个字符串

    我想在大文件中每 30 行后插入一个字符串 我使用的是 mini sed 它不支持 波形符 范围运算符 我正在寻找仅限 sed 的解决方案 该线程是如何使事情变得过于复杂的另一个例子 这应该可以做到 sed 0 30 s string g
  • 具体来说,什么属于模型、视图和控制器?

    我一直在学习模型 视图 控制器范例 MVC 但我很困惑 因为有些教程与其他教程相矛盾 我目前对这个过程的理解是这样的 路由器 调度器 前端控制器 尽管 MVC 名称中没有具体提及 但 Router 仍然是一个非常重要的部分 正是在这里 请求
  • http://*:80 和 http://+:80 有什么区别

    在学习中关于网络部署 http technet microsoft com en us library dd569093 28WS 10 29 aspx我遇到了一些涉及 http 80 和 http 80 的 netsh exe 命令 这些
  • 联系我们页面

    我的 联系我们 页面无法正常工作 有这个错误 System Net Mail SmtpException 邮箱不可用 服务器 响应是 来自域必须与经过身份验证的域匹配 System Net Mail MailCommand CheckRes
  • 使用 SAXON for Java 将存储在字符串中的 XML 片段解析为 XSLT 中的节点

    在我的 XSLT 中 我有一个包含字符串的变量 该字符串包含 XML 片段 这是以编程方式输入的 但它相当于
  • 如何在 packages.config 中指定 NuGet 包来自外部源?

    我正在开发一个项目 该项目依赖于外部源的 NuGet 项目 我们正在使用包恢复 而不是将包提交到 Git 中 对于未在 NuGet 设置中配置此源的开发人员 是否可以在packages config 文件中指定应从其他源提取此包 e g
  • 将单个变量分配给数组(就地)

    考虑以下代码 a 1 2 3 a seven export a declare p a 输出 来自declare is declare ax a 0 seven 1 2 2 3 So a是一个数组 问题 如何改变第二行 所以a将不再是一个数