【问题标题】:How to keyboard type a variable using xdotool?如何使用 xdotool 键盘键入变量?
【发布时间】:2012-02-17 06:10:01
【问题描述】:

我正在编写一个小脚本来每天从 Internet 上保存一些数据。 所以我使用 xdotool 来模拟我的所有导航,直到我面前有 firefox 的保存窗口,我的意思是,在我的脚本前面。好的,直到这里......但是,当我尝试使用星期几(或i 变量中的任何数据)作为要保存的文件名的一部分时............ .. 嗯——>“什么都没有发生”。 =(

好吧,我想我这里有一些简单的问题,我已经尝试了很多方法来使用我通过日期函数获得的变量的内容,或者直接使用简单的管道,但是 xdotool 拒绝将此信息输入到文件名框中保存文件窗口,该窗口明显被选中并突出显示文本。

道路上的一些光明,大师们!我是一个可怕的菜鸟!对不起! =)所以这是我尝试的代码,(最后一行的问题):

#!/bin/bash

i=|date +%A
echo $i

WID=`xdotool search --name "Mozilla Firefox" | head -1`
xdotool windowactivate $WID
xdotool key ctrl+l
xdotool type "http://whatever.com.au"
xdotool key Return 
sleep 2
xdotool key ctrl+s
sleep 2

xdotool type WeekDayIs$i

我想我错过了一些非常明显的东西,也许是一些类型转换......

我真的是个初学者,所以不要太责怪我。我也尝试了"$i"{"$i"}'$' .. 没有任何效果... =/ 谢谢大家。

ps:并且,如果某个好人想指出一种直接将某些 Web 内容直接保存到文件的方法,也许我会跪在他面前.. ;-) 编辑:我也得到了这个问题的答案here

编辑位置解决方案:

是的 shellter,此代码在星期二和 YesTuesday 打印出来,而不是在星期二打印 3 次。呵呵,一天又一天。感谢您的关注。

#!/bin/bash
i=|date +%A
echo $i
echo $i
echo $i

i=$(date +%A)

echo Yes$i

【问题讨论】:

  • 哦, echo $i 的输出是 "Monday" 。只是为了检查。
  • 谢谢 Shellter,你拯救了我的一天。 =) 检查正确答案。

标签: bash automation filenames


【解决方案1】:

我对 xdotool 一无所知,但有一个问题很明显,请更正此问题,如果未解决,请编辑您的帖子,并包含错误消息的特定文本。

改变

i=|date +%A

i=$(date +%A)

然后当你执行你的最后一行时

xdotool type WeekDayIs$i

$i 会有一个值。

IHTH

【讨论】:

  • 是的,是的,是的!大帮壳!我不能赞成你的回答,因为我在 S.O. 上还太新。 ,但这从字面上解决了我的问题。唯一我还没有理解的是:'echo $i' 是如何给我“星期一”的,但只有你的语法我也有这个值,xdotool?
  • 也许您很高兴知道 xdotool,它是一个非常强大的库/命令 (?),可以模拟键和鼠标的移动、点击等。看看project page。也许这对您的帮助有所帮助。再次感谢。
  • 嗨@H_7,很高兴听到这有帮助,并感谢您对 xdotool 的快速介绍。我将阅读它,因为它似乎真的很有用。让我知道我是否可以再次提供帮助。祝你好运!
  • 当您执行i|date +'%A' 时,i| 和以下命令之间不会发生任何事情。您会看到date '%A' 的输出,而i=| 正在被丢弃。从技术上讲,您正在运行两个进程。 a=... 在你的 shell 的当前进程中,并期望像 a="aValue" 这样的正常分配,但是第二个进程(带有管道)(date ...)只是执行。没有任何东西通过管道。 date '+%A' "echo" 的输出是值(就像您在命令行上自己键入一样),与前面的 a=| 无关。我希望这是有道理的。祝你好运。
  • 不错@shellter。很高兴你喜欢 xdotool,它真的很棒。除了这一点之外,一切都很有意义:如您所见,在第二行我有 echo $i 打印出“星期一”(!)。如果我对 i=|date +%A 什么都没有,并且以后对 xdotool 类型 WeekDayIsi$ 什么也没有,怎么办?
猜你喜欢
  • 1970-01-01
  • 2013-07-25
  • 1970-01-01
  • 2022-09-27
  • 2016-09-14
  • 1970-01-01
  • 2013-04-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多