首页 > 解决方案 > 用于对多个输入一一执行单个命令的 Bash 脚本

问题描述

我有一个基于 linux 的命令,命名为x2goterminate-session后跟用户名,例如

x2goterminate-session john

但是有很多用户会话我想一次性终止。

slpusrs=`x2golistsessions_root | grep '|S|' | cut -d "|" -f 2`

上面的变量slpusrs找到睡眠用户的列表并将它们存储在 slpusrs 变量中。

现在我想在用户列表上一个一个地执行 x2goterminate-session 命令,这样就可以一次性终止所有正在睡觉的用户,而不是一个一个地键入命令后面跟着用户的命令。

command=x2goterminate-session
for i in "${slpusrs[@]}"; do
"$command" "$i"
done

但它不起作用。请帮忙

标签: linuxbashshell

解决方案


slpusrs是一个字符串,而不是一个数组。利用

for i in $slpusrs; do
    "$command" $i"
done

推荐阅读