Tag: bash

我可以和应用程序一起运行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快速列表: 但正如我所料,它没有用。 那么,有没有其他方法可以做到这一点?

gedit语法颜色不会出现

我有一些我刚才写的程序来编辑我一直保留的期刊。 我通常不喜欢使用gedit,我喜欢保持我的vim技能为我的下一个“gui-less”项目。 我正在用gedit编辑用bash脚本编写的程序之一,即使顶部是#!/bin/bash ,它也不会显示bash语法。 所有其他的似乎工作正常。 这是有问题的脚本。 #!/bin/bash ############################ # ok, this is going to be # # a remake of my first # # easy access log editing # # Program. # ############################ chmod 770 ~/.Secret_Files vi ~/.Secret_Files/Log17 chmod 000 ~/.Secret_Files sleep .5 echo ‘Done’ (比如我对文档的微弱尝试?) 糟透了的东西就在这里,它只是在askubuntu中显示了语法着色。 问题回答,无需添加。

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

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

每个程序是否都必须通过shell来完成他们愿意制作的过程?

我在某处看到“bash用于与Linux内核通信”。 它只适用于终端吗? 或者每个程序(包括具有GUI的程序)是否必须通过shell来完成他们愿意制作的过程? (考虑一下我们正在为一张照片着色.bash如何知道我们在做什么?gimp和bash之间是否有第三方将它们转换为bash?) 如果你能举一个例子解释:)真的很有帮助:)

将目录结构从/ YEAR / MONTH / DAY /更改为/ YEAR-MONTH-DAY

我需要将我的照片的目录结构从/ YEAR / MONTH / DAY /更改为/ YEAR-MONTH-DAY 我知道这可以用exiftool完成,但它只适用于包含EXIF标签的文件,并且我有与每个图像对应的xmp-sidecar文件,这些也需要出现。 因此,我会以某种方式重新编写脚本是最好的方法。 我坐下来试图学习RegEx, sed ,bash以及什么不是,并且给予足够的时间,我想我应该能够解决这个问题,但是现在我很匆忙,所以任何帮助都会受到赞赏。 //奥拉

我如何启用ccache

我完全是菜鸟,我不知道make文件是什么,我不知道什么是bashrc。 但我知道在哪里下载源代码并使用source somebash.sh然后生成文件(正如有人告诉我们运行这些命令) 我做了一些研究,发现ccache可以加快顺序构建速度,但是我不知道在阅读那些在线指令时我想做什么(包括路径中的ccache,路径,地点和方式,以及gcc,colorgcc,bashrc , 这些是什么?) 因此,如果有人可以一步一步地指示,那就太棒了。

如何使用Bash文件创建命令

我创建了一个.sh (或bash)文件,我想在GNOME-Terminal中为该文件创建一个命令。 我知道你运行.sh文件: ./file.sh 编译之后,我也知道所有命令都存储在/bin/bash 。 但我似乎无法弄清楚当我在终端的任何目录中时,我可以创建一个可以调用的命令,例如: abc 会运行abc.h等等有什么建议吗?

替换上一个命令中的某些字符

有时,匆忙,可以在命令行中键入一些错误的字符。 如果命令很长,则错误校正可能很麻烦(使用箭头键)。 所以问题是:如何尽可能快地替换上一个命令中输入错误的字符?

找不到通过bash脚本删除文件夹中的文件

我是bash脚本的新手,我真的坚持使用Ubuntu的find方法。 我想在文件夹/opt/搜索所有文件夹,看看它们是否比特定日期更早。 如果它们较旧,则应删除此文件夹中的文件(实际上文件夹本身也是如此)。 如果日期仍然太新,则不应触摸文件。 我在代码中有什么: find $BACKUP_DIR -maxdepth 1 -mtime +$DAYS_TO_KEEP -name “*$mystring” -exec rm -rf ‘{}’ ‘;’ 变量包含以下值: BACKUP_DIR=/opt/ TESTDIR=2014-11-25-daily_testmachine mystring=-daily_testmachine 如果变量$DAYS_TO_KEEP为2,则日期为2014-11-25,文件夹名称为2014-11-20-daily_testmachine ,文件夹及其内容应删除。 我发现错误的是找不到删除/找到要删除的文件和文件夹? 我似乎无法找到错误。 注意:如果我执行命令中包含文件夹的确切字符串名称,则该文件夹将被删除。 所以我的格式或命名有问题。 find $BACKUP_DIR -maxdepth 1 -name “2014-11-20-daily_testmachine” -exec rm -rf ‘{}’ ‘;’ 为了使事情更清楚,我制作了一个屏幕截图来显示设置:

如何在这个bash脚本中获得更好的错误消息?

我试图在运行命令时捕获任何错误,以便编写日志文件/报告 我试过这段代码: function valid (){ if [ $? -eq 0 ]; then echo “$var1” “: status : OK” else echo “$var1” “: status : ERROR” fi } function save(){ sed -i “/:@/c connection.url=jdbc:oracle:thin:@$ip:1521:$dataBase” $search var1=”adding database ip” valid $var1 sed -i “/connection.username/c connection.username=$name” #$search var1=”addning database SID” valid $var1 } save 输出如下: adding database ip […]