小编Ali*_*aka的帖子

如何将属性文件读入关联数组?

我想将属性文件中的属性读入关联数组。我该怎么做?

解析内容的细节:散列和等号。其他一切都是奖金。

属性文件内容示例:

# comment
a=value-a
b=http://prefix.suffix:8080/?key=value
c=password_with\\backslash-and=equals
Run Code Online (Sandbox Code Playgroud)

我希望从该文件中构造这个 bash 关联数组:

 declare -A props='(
  [a]="value-a"
  [b]="http://prefix.suffix:8080/?key=value"
  [c]="password_with\\backslash-and=equals" )'
Run Code Online (Sandbox Code Playgroud)

declare -p该关联数组的预期输出,注意${props[c]}只包含一个反斜杠,"\\"'\')。

bash shell-script associative-array

9
推荐指数
3
解决办法
1万
查看次数

是否有可下载的 Linux git 客户端而无需安装?

我想在我要发货的产品中使用 git 客户端。

问题是安装我的产品的机器没有安装 git。安装它需要大量的官僚工作,我想避免这种情况。

是否有一个可以在所有 linux 64 位发行版上运行的 git 二进制文件?

在 git's official site,我找不到这样的选项 - 只是不同包管理器和 Linux 风格的安装说明。

有许多 Linux 应用程序为所有 Linux 发行版提供单个可执行文件,例如Sublime。知道为什么 Git 不同吗?

git command

7
推荐指数
1
解决办法
668
查看次数

如何打印导致脚本失败的失败命令?

我正在使用-e旗帜。

用法:

#!/bin/bash -e
Run Code Online (Sandbox Code Playgroud)

解释:

-e      Exit immediately if a simple command (see SHELL GRAMMAR above) exits with a non-zero status
Run Code Online (Sandbox Code Playgroud)

当脚本中的某个命令失败时,脚本退出并且不会继续执行其余命令,这正是我想要的。

但是,失败仅包含失败命令选择公开的信息。

有时失败的命令非常复杂,例如带有许多标头的卷曲。

如何打印失败的命令?我的意思是,在失败后立即。

我知道我可以使用-xbash 标志,但它会打印所有已执行的命令。我只想看看失败的那个。

bash command exit-status

4
推荐指数
1
解决办法
1506
查看次数

按 bash 中的插入映射排序

bash 中是否有有序(通过插入)映射?

我知道bash 中有一个关联数组数据结构,但是在对其进行迭代时,元素的顺序不是插入顺序。下面举例。

我想按插入顺序排列地图。

关联数组不保留插入顺序:

declare -A REPLACE_MAP
REPLACE_MAP['b']='2'
REPLACE_MAP['a']='1'
for key in "${!REPLACE_MAP[@]}"; do
    echo "$key - ${REPLACE_MAP["$key"]}"
    value=${REPLACE_MAP["$key"]}
done
Run Code Online (Sandbox Code Playgroud)

结果:

a - 1
b - 2
Run Code Online (Sandbox Code Playgroud)

我想要一个将产生以下结果的数据结构:

b - 2
a - 1
Run Code Online (Sandbox Code Playgroud)

bash array shell-script associative-array

3
推荐指数
1
解决办法
5750
查看次数