使用 bash 脚本时遇到问题。我不知道如何从 xdotool 搜索功能中获取各个 pid。
代码
google-chrome --app=https://google.com &
google-chrome --app=https://google.com &
google-chrome --app=https://google.com &
google-chrome --app=https://google.com &
sleep 5
pids=$(xdotool search --onlyvisible --name google)
echo $pids
width=1920
height=1080
for i in 0 1 2 3;
do
x=$((((i)/2)*$width))
y=$(((i%2)*$height))
echo $x
echo $y
echo "${pids[$i]}"
#xdotool windowmove ${pids[i]} $x $y
done
输出
46137345 46137352 46137355 46137358
0
0
46137345
46137352
46137355
46137358
0
1080
1920
0
1920
1080
我看不到
/n
在我认为正在做的字符串中,所以不知道它为什么要创建新行。我对 bash 脚本非常陌生,所以我毫不怀疑这是显而易见的愚蠢行为。
我正在使用 bash 版本 5.0.3
最佳答案
问题是您的 pids
变量只是一个字符串,但您正试图将它视为一个数组。
使用一组外部括号使 pids 成为一个数组,如下所示:
pids=($(xdotool search --onlyvisible --name google))
$ for i in "${pids[@]}"; do echo $i; done
46137345
46137352
46137355
46137358
关于linux - 使用 Bash 脚本从 xdotool 搜索结果中检索单个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61810584/