使用 Bash 脚本从 xdotool 搜索结果中检索单个元素

Retrieving individual element from xdotool search result with Bash script

bash 脚本有问题。我不知道如何从 xdotool 搜索功能中获取各个 pids。

代码

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