使用 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
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