Linux Bash脚本在多个输入上逐个执行单个命令
我有一个基于linux的命令,名为x2goterminate session,后跟用户名 e、 g 但是有很多用户会话,我想在一次尝试中终止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
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一次传递一个参数。