【问题标题】:Declare array over ssh通过 ssh 声明数组
【发布时间】:2026-01-06 15:00:01
【问题描述】:

我尝试使用命令在 ssh 上声明一个数组:

 ssh root@myserver " declare -a users=( user1 user2 user3 user4 user5 ); for user in ${users[*]}; do /usr/sbin/userdel -r $user; done "

当我执行此命令时,我收到如下错误:

sh: syntax error at line 1: `(' unexpected

那么我的错误是什么?

谢谢。

【问题讨论】:

  • 该错误表明您在远程服务器上运行sh 而不是bash。这有帮助吗?提示:sh 不支持数组。
  • 是的。这应该是原因。所以我将编写一个单独的脚本,并通过以下方式传递给远程 bash shell: ssh [user]@[server] 'bash -s'

标签: arrays bash for-loop ssh declare


【解决方案1】:

我通过以下方式解决了我的问题:

ssh [user]@[server] 'bash -s' < myscript.sh

【讨论】: