Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Bash脚本在多个输入上逐个执行单个命令_Linux_Bash_Shell - Fatal编程技术网

Linux Bash脚本在多个输入上逐个执行单个命令

Linux Bash脚本在多个输入上逐个执行单个命令,linux,bash,shell,Linux,Bash,Shell,我有一个基于linux的命令,名为x2goterminate session,后跟用户名 e、 g 但是有很多用户会话,我想在一次尝试中终止 slpusrs=`x2golistsessions_root | grep '|S|' | cut -d "|" -f 2` 上面的变量slpusrs查找睡眠用户列表并将其存储在slpusrs变量中 现在,我想在用户列表上逐个执行x2goterminate会话命令,这样所有睡眠用户都可以一次性终止,而不是依次键入命令和用户 command=x2goter

我有一个基于linux的命令,名为x2goterminate session,后跟用户名 e、 g

但是有很多用户会话,我想在一次尝试中终止

slpusrs=`x2golistsessions_root | grep '|S|' | cut -d "|" -f 2`
上面的变量slpusrs查找睡眠用户列表并将其存储在slpusrs变量中

现在,我想在用户列表上逐个执行x2goterminate会话命令,这样所有睡眠用户都可以一次性终止,而不是依次键入命令和用户

command=x2goterminate-session
for i in "${slpusrs[@]}"; do
"$command" "$i"
done
但它不起作用。请帮助

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

for i in $slpusrs; do
    "$command" $i"
done
slpusrs是字符串,而不是数组。使用

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

使用xargs为每个用户运行命令,而不是使用Bash进行迭代

x2golistu根| 格雷普| S || 切割-d |-f 2| xargs-n1 x2goterminate会话
使用xargs为每个用户运行命令,而不是使用Bash进行迭代

x2golistu根| 格雷普| S || 切割-d |-f 2| xargs-n1 x2goterminate会话 如果x2goterminate会话realls一次只能在一个用户上工作,则可以执行以下操作:

for user in $(x2golistsessions_root | grep '|S|' | cut -d "|" -f 2)
do
  echo "Murdering unser $user ..."
  x2goterminate-session "$user"
done
无需引入单独的变量,除非稍后再次需要用户列表。

如果x2goterminate会话realls一次只能在一个用户上工作,则可以执行以下操作:

for user in $(x2golistsessions_root | grep '|S|' | cut -d "|" -f 2)
do
  echo "Murdering unser $user ..."
  x2goterminate-session "$user"
done

无需引入单独的变量,除非稍后再次需要用户列表。

您的命令是否允许使用多个用户名,即x2goterminate会话bill john steve sue?@muhammadowaisKhaleeq:您将SLPUSR引用为数组,但将其设置为标量。要设置数组变量,需要slpusrs=$。。。。您的命令是否允许使用多个用户名,即x2goterminate会话bill john steve sue?@muhammadowaisKhaleeq:您将SLPUSR引用为数组,但将其设置为标量。要设置数组变量,需要slpusrs=$。。。。谢谢这对我很有用。。你能告诉我-n1表示命令只有一个参数吗?xargs默认为一个命令调用传递尽可能多的参数。但是由于您的命令可能只接受一个参数,-n1告诉xargs一次传递一个参数。谢谢!!这对我很有用。。你能告诉我-n1表示命令只有一个参数吗?xargs默认为一个命令调用传递尽可能多的参数。但由于您的命令可能只接受一个参数,-n1告诉xargs一次传递一个参数。