解析内容的细节:散列和等号。其他一切都是奖金。
属性文件内容示例:
# 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]}
只包含一个反斜杠,"\\"
是'\'
)。
我想在我要发货的产品中使用 git 客户端。
问题是安装我的产品的机器没有安装 git。安装它需要大量的官僚工作,我想避免这种情况。
是否有一个可以在所有 linux 64 位发行版上运行的 git 二进制文件?
在 git's official site,我找不到这样的选项 - 只是不同包管理器和 Linux 风格的安装说明。
有许多 Linux 应用程序为所有 Linux 发行版提供单个可执行文件,例如Sublime。知道为什么 Git 不同吗?
我正在使用-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)
当脚本中的某个命令失败时,脚本退出并且不会继续执行其余命令,这正是我想要的。
但是,失败仅包含失败命令选择公开的信息。
有时失败的命令非常复杂,例如带有许多标头的卷曲。
如何打印失败的命令?我的意思是,在失败后立即。
我知道我可以使用-x
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)