【发布时间】:2021-09-02 23:43:46
【问题描述】:
假设我有这个 Bash 代码块:
arr=(a b c)
sudo -i -u username bash <<EOF
arr[${#arr[@]}]="d"
EOF
我需要在 heredoc 中的 arr 中添加“d”。但它不起作用。
【问题讨论】:
-
使用
sudo命令,您将启动另一个bash会话。 "d" 值被附加到 那个 会话中的arr数组,然后您在初始会话中的数组arr被不更改。您是否希望通过sudo获取 shell 脚本? -
是的,看来我必须定义一个内部变量然后对其进行修改。
-
arr[${#arr[@]}]="d"=arr+=("d")