Tag: 脚本

什么是通用shell脚本的示例,它将在终端中正确运行,但不是双击时?

我真的很想了解一些脚本可以从命令行运行但不是双击时的基本原因。 是否有一个脚本的例子可以做一些简单的事情,比如回显一个变量或类似的东西,它可以在命令行中重现,但是双击时却无法工作? 要清楚,我的意思是它应该在两个实例中运行,但是当双击时它应该无法正确执行其任务,并且它应该在任何最近的Ubuntu安装上执行此操作。 我希望通过能够重现我能理解的行为并在将来自己修复它。

我可以和应用程序一起运行shell脚本吗?

我写了一个小脚本,在我关闭它后自动删除Chrome缓存: #!/bin/bash while true; do if [[ $(pgrep -l chrome) ]]; then sleep 20 else rm -rf ~/.cache/google-chrome/Default/Cache/* rm -rf ~/.cache/google-chrome/Default/”Media Cache”/* notify-send “CCD” “Cache deleted!” break fi done 现在我不希望每次都手动运行此脚本,我希望它在启动Chrome时自动在后台运行。 我尝试使用Ubuntu Tweak编辑Chrome快速列表: 但正如我所料,它没有用。 那么,有没有其他方法可以做到这一点?

为什么update-rc.d不接受我的init脚本

我想在启动时启动noip.com dyndns客户端,并使用提供的debian.noip2.sh脚本(从shell启动客户端就好了)。 我将它复制到/etc/init.d ,使其归root所有,并赋予它755权限。 现在,当我想安装它时,我得到: # update-rc.d debian.noip2.sh defaults insserv: warning: script ‘K01debian.noip2.sh’ missing LSB tags and overrides insserv: warning: script ‘debian.noip2.sh’ missing LSB tags and overrides insserv: warning: script ‘noip’ missing LSB tags and overrides insserv: script virtualbox: service vboxdrv already provided! insserv: script virtualbox: service virtualbox already provided! 脚本看起来像: # cat /etc/init.d/debian.noip2.sh #! […]

如何在登录时运行需要sudo的命令

我制作了一个控制系统LED的脚本,效果很好。 我把它保存到/usr/local/bin/led-pattern并运行sudo chmod a+x /usr/local/bin/led-pattern所以只需输入命令led-pattern执行它的可执行文件。 执行此操作后,它会要求输入管理密码,并在输入密码后,脚本按预期运行。 但是,当添加到我的启动应用程序列表中时,它不会在登录时运行,可能是因为缺少sudo权限,因为我所做的所有其他启动脚本都运行得很好并且不需要许可。 我怎样才能使这个脚本无缝启动 – 即使它需要sudo权限,也不要求任何密码? 编辑:通过启动,我的意思是它正在记录用户,而不是在启动计算机时

我可以让倒计时窗口显示下次暂停的时间吗?

当我需要去某个地方的时候我偶尔会把我的电脑留下来,但我会把它留给我绝对信任的人,我很快就会回来,所以不需要暂停(就像它的家人一样,我只是突然出现在厕所里面。离我所在的地方只有一小段距离你知道,这样的话总是暂停我的机器是不方便的,或者可能有其他原因我想要这个,比如知道我是否应该跑到我的机器上摆动鼠标在进入睡眠状态之前,或者我是否能以较慢的速度进入我的电脑。 无论如何,为了达到目的,我希望能够启动一个倒计时(最好是在屏幕右上角的所有内容的透明视图(透视位不是必须的)窗口在顶部栏的下方)显示,它将显示下一个暂停时间的倒计时。 这可以在每次与机器交互时重置计时器,或者以某种方式直接与挂起系统连接,以告知下一次挂起的时间(因为我假设有某种倒计时)。 怎么可能实现这样的事情(当然我不希望窗口总是打开,而是让我能够在任何时候启动窗口运行命令,或者它甚至可以在终端窗口中倒计时如果GUI位有问题,我会移动或自动位于右上角)? 我正在使用GNOME 3.18运行Ubuntu GNOME 15.10,但该解决方案也应该与Ubuntu GNOME 16.04和GNOME 3.20一起使用,因为我计划很快升级。

在perl脚本中使用awk命令

有人可以建议如何在perl脚本中使用命令管道吗? 特别是涉及调用awk命令? 我正在尝试创建一个perl脚本,它将使用df -H读取磁盘使用情况并返回第二行输出,显示%use。 直接在终端中输入命令将返回所需的输出。 df -H | awk ‘{print $(NF-3)}’ 此命令返回正确的结果。 但是当在反向刻度实用程序中使用相同的命令时,perl脚本会抛出很多错误。 $thirdlast=`df -H | awk ‘{print $(NF-3)}’`; print $thirdlast; 为什么脚本中没有运行相同的命令? 有没有其他方法可以返回所需的结果?

如何用qdbus列出打开的nautilus选项卡?

我正在尝试挖掘qdbus for nautilus以获取打开的标签列表; 到目前为止我设法做到了这一点: sites=(`qdbus |grep nautilus -i`); for siteSrc in ${sites[@]};do list=(`qdbus $siteSrc`); for path in ${list[@]}; do qdbus $siteSrc $path |sed -r “s|.*|$siteSrc $path &|”; done; done |sort -u #|grep paths -i 例如:我能够获得所选文件的列表 qdbus org.gnome.NautilusApplication /org/nautilus_actions/DBus/Tracker/0 org.nautilus_actions.DBus.Tracker.Properties1.GetSelectedPaths 但我找不到打开标签位置的线索? (所以我们可以在脚本上使用以后再恢复它们)

如果徽标包含特定文件/子目录,请将徽标放在文件夹图标上

如何为所有目录创建脚本和系统规则,如果文件夹包含.git直接子文件夹,它将在每个目录的图标上应用标志? 我已经在这样的标志中加入了github标志图标 输出效果应如下:

在Thunar自定义操作中运行脚本(’compress-pdf’)时出错

我想将脚本’compress-pdf’添加到Thunar自定义操作中。 该脚本是本答案中发布的脚本,用于调整pdf的大小。 它基于zenity 。 它是为Nautilus制作的,但是,如上所述,它“ 不依赖于任何自定义的Nautilus变量,并且几乎可以与任何支持自定义菜单操作的文件管理器一起使用 。” 我已将脚本添加到文本文件中,使其可执行,并将其路径添加到名为“resize pdf”的Thunar自定义操作中。 但是,当右键单击选定的pdf并运行’resize pdf’时,我收到此错误: 为什么这样以及如何解决? (也许zenity脚本确实需要调整才能在Thunar自定义操作中工作?)

在命令行工具中打印编号的参数

是否有一个显示命令行参数的打包程序? 我经常发现让用户运行这种类型的程序来帮助他们理解shell命令的作用,或者获得更清晰,更模糊的反馈(例如,当我看不到他们的屏幕并且我们在线通过粘贴进行通信时)会很有帮助网站)。 我在Python中编写了下面的脚本,但是我觉得更容易告诉人们他们可以获取的Ubuntu包,而不是解释如何写入文件, chmod +x ,并更改他们的系统(例如,他们可能在PATH中没有~/bin设置,…)。 我很高兴看到命令行sed/awk/perl/etc. 脚本也可以执行此function,即使它很难看。 (“如果”……在一行中这样做会很难看。) 任何解决方案都需要与此脚本有一些类似的结果; 这是英文:用数字打印每个参数(逃避有问题的字符只是一个奖励)。 #!/usr/bin/env python2.6 import sys if len(sys.argv) == 1: print “No args!” else: args = enumerate(sys.argv) args.next() # skip program name for i, v in args: r = repr(v) if v.strip() != v or v != r[1:-1]: v = r + “\t(repr)” print “%3d: %s” […]