Tag: 脚本

如何在bash脚本中检查apt-get错误?

我正在编写一个bash脚本来安装软件并更新Ubuntu 12.04。 我希望脚本能够检查apt-get错误,特别是在apt-get update期间,这样我就可以包含更正命令或者使用消息退出脚本。 如何让我的bash脚本检查这些类型的错误? 编辑3月21日:感谢terdon提供我需要的信息! 这是我创建的脚本,其中包含检查更新的建议,并在发生错误时重新检查,然后报告。 我将把它添加到我用来定制新的Ubuntu安装的更长的脚本中。 #!/bin/bash apt-get update if [ $? != 0 ]; then echo “That update didn’t work out so well. Trying some fancy stuff…” sleep 3 rm -rf /var/lib/apt/lists/* -vf apt-get update -f || echo “The errors have overwhelmed us, bro.” && exit fi echo “You are all updated […]

如何获得有效安装的非LTS包列表?

我想看看我的系统在多大程度上受LTS支持,通​​过5年支持哪些包,哪些不支持。 我可以忽略一些非5yr支持的软件包,因为有些软件包很少使用或者不太可能涉及(安全性)问题。 我认为这很有用,因为人们可以得到报告并得出结论,例如“我的系统是100%LTS” , “由于包X,Y,Z,我的系统只有99%LTS” , “由于使用KDE,我的系统现在是50%LTS“ 。 与我在问题中的答案相关12.04 LXDE是否有LTS? ,我发布了一种方法,看看Ubuntu的哪些软件包具有五年的支持。 例如: $ apt-cache show unity | grep ^Supported Supported: 5y $ apt-cache show lxde-core | grep ^Supported 我可以编写一个脚本来获取所有包的所有信息,但apt-cache命令非常慢: real 0m1.535s user 0m1.484s sys 0m0.036s 安装了2700多个软件包,大约需要70分钟(!)。 如何加速处理并获取系统中所有非5yr支持的软件包的报告? 我更喜欢一个简单的apt-* shell命令,用于简单的shell脚本。 如果它需要更高级的脚本,比如进入Python,这也很好。 最后,我想发布一个(小)脚本,以便轻松快速地创建系统报告。 注意:我对Ubuntu的特定风格是否提供LTS的讨论不感兴趣 – 这实际上只是包。 您可以在系统上混合使用LTS和非LTS包。

如何制作脚本支持文件:///表示法?

当我复制任何文件并将其粘贴到控制台或文本编辑器中时,它将作为传递 文件:/// home / user中/路径/文件 当我把它传递给脚本时,它找不到 什么是将其转换为普通linux路径或以某种方式使脚本支持它的最简单方法? 例如 cat file:/// home / user / path / file 说 没有相应的文件和目录

如何使用shell脚本设置系统范围的代理地址?

我想通过我的Qt应用程序设置系统代理地址。 所以我想知道我是否可以编写一个脚本,每次都可以由我的应用程序执行以更改代理地址。 我试过了 : #! /bin/sh echo “# Generated by Application” export $1 echo “Proxy Address ${1} 但是这个脚本没有成功。 我认为它无法执行“export”命令。 任何人都可以帮我解决这个问题吗?

向所有用户传达一些消息

是否有可能编写一个shell脚本,允许任何用户(可能不是root用户)设置消息(例如“下载进度不要关闭”等),这些消息将像弹出消息一样传达(zenity或notify-发送)给所有其他用户。 如果任何用户在发送消息时不在那里,他们必须在登录时获取它或解锁他们的屏幕。

如何在解锁后30分钟锁定屏幕

我希望我的孩子只使用电脑30分钟,这时我希望屏幕被锁定。 此时,如果我选择再次解锁屏幕,我希望屏幕再次锁定30分钟。 如何编写脚本来执行此操作?

防止重复脚本同时运行

我正在使用scrapy来获取一些资源,我想把它作为一个可以每30分钟启动一次的cron工作。 cron: 0,30 * * * * /home/us/jobs/run_scrapy.sh` run_scrapy.sh: #!/bin/sh cd ~/spiders/goods PATH=$PATH:/usr/local/bin export PATH pkill -f $(pgrep run_scrapy.sh | grep -v $$) sleep 2s scrapy crawl good 如图所示,我试图杀死脚本进程和子进程(scrapy)。 但是,当我尝试运行两个脚本时,脚本的较新实例不会终止旧实例。 如何解决? 更新: 我有一个以上的.sh scrapy脚本,它以cron配置的不同频率运行。 更新2 – 测试Serg的答案: 在我运行测试之前,所有cron作业都已停止。 然后我打开三个终端窗口,说它们被命名为w1 w2和w3,并按以下顺序运行命令: Run `pgrep scrapy` in w3, which print none.(means no scrapy running at the moment). Run […]

是否有时间跟踪窗口和应用程序使用的软件?

是否有一个软件可以保留我的活动时间并提供报告? 基于重点窗口和窗口标题。 报告只显示特定窗口及其标题所花费的时间,如: Application Title Time Firefox Ask Ubuntu – Mozilla Firefox 5:58

如何从inotifywait事件中获取文件名?

所以我正在做一个简单的inotifywait循环来监视Bootstrap目录中的更改: while inotifywait -r -q –format %w bootstrap/; do echo “something happened” [[ $filename == *.js ]] && uglifyjs ….. [[ $filename == *.less ]] && lessc bootstrap.less done 你真的不需要担心内部,但我只是无法将文件名恢复到bash范围。 inotifywait回显文件名(在format参数的帮助下),但我如何捕获并稍后使用它(在我的情况下,作为$filename )? 如果你想要一个简单,简短的测试工具: touch testfile while inotifywait testfile do; echo “…”; done 然后你可以在想要触发时运行touch testfile 。

如何创建使用关键字和过滤内容的CLI Web Spider?

我想在弃用的(过时的)文学论坛e-bane.net中找到我的文章。 一些论坛模块被禁用,我无法获得作者的文章列表。 此外,该网站未被搜索引擎编入索引,如Google,Yndex等。 找到我所有文章的唯一方法是打开网站的存档页面 (图1)。 然后我必须选择某些年份和月份 – 例如2013年1月 (图1)。 然后我必须检查每篇文章(图2)是否在开头写了我的昵称 – pa4080 (图3)。 但是有几千篇文章。 我已经阅读了以下几个主题,但没有一个解决方案符合我的需求: Ubuntu的网络蜘蛛 如何在Linux系统上编写Web蜘蛛 从站点获取URL列表 我会发布自己的解决方案 。 但对我来说很有趣: 有没有更优雅的方法来解决这个任务?