该把脚本放在哪里自动启动运行呢?

sh/bash/dash/ksh/zsh等Shell脚本
回复
elisir
帖子: 2
注册时间: 2020-04-25 11:08
系统: ubuntu 20.04+win10

该把脚本放在哪里自动启动运行呢?

#1

帖子 elisir » 2020-04-26 0:37

我学习(拷贝)https://bbs.deepin.org/forum.php?mod=vi ... 做了个shell脚本,在终端可以后台运行,配合设置了快捷键的scrot可以实现一键截屏并将图片保存到特定目录,用tesseract来OCR识别,在这个脚本中将识别结果提交给goldendict翻译。

但是,除了每次打开终端运行./gdocr.sh &有没有办法让他自动运行呢?我试着加入crontab(当前用户),不行。添加的命令如下:

代码: 全选

* * * * * nohup /home/lisir/gdocr.sh &
试着去掉nohup也不行。

加入~/.bashrc或~/.profile或/etc/profile也不行

系统版本是Kubuntu 20.04,在自定义快捷键那里新建了个,命令为:

代码: 全选

scrot '%Y-%m-%d_$wx$h_scrot.png' -s -f -e 'mv $f ~/图片/goldendict/'
而~/gdocr.sh的内容如下,用chmod +x加过权限了:

代码: 全选

    #!/bin/bash
    #本地goldendict的OCR取词
       cd /home/lisir/图片/goldendict #监控和图片存储目录
    while true;do
         num=$(find -name "*.png" -print)  
         if [ ! -n "$num" ]; then
            sleep 1
         else
            mv *.png 1.png
            tesseract 1.png ./out -l eng+chi_sim+chi_sim_vert+chi_tra+chi_tra_vert --psm 7
            var=$(cat out.txt)
            goldendict "$var"
            rm *.png
            rm *.txt
            sleep 1
         fi
    done
求大佬指点,感激不尽!
另外,好像我在安装ttf字体后,现在在FF中输入中文变成繁体了,在Kate中就没事,这是怎么回事?
换过FF中的显示字体,没解决。
当时执行操作如下:

代码: 全选

mkfontscale
mkfontdir
fc-cache -fv
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: 该把脚本放在哪里自动启动运行呢?

#2

帖子 astolia » 2020-04-26 11:27

我觉得你走入了思维的误区。
想做的事是按下快捷键后,执行截图->识别->查询这一系列操作,那直接把这三个操作写到同一个脚本里,再绑定到快捷键执行就行了,根本没必要让一个程序一直在后台不断检查有没有新图片再识别查询。

另外输入法的简繁体跟字体没关系,肯定是你碰到输入法的简繁切换功能了。记得ibus可以设置在不同程序中不同输入状态的。自己在输入法设置里找一下
elisir
帖子: 2
注册时间: 2020-04-25 11:08
系统: ubuntu 20.04+win10

Re: 该把脚本放在哪里自动启动运行呢?

#3

帖子 elisir » 2020-04-26 22:20

astolia 写了: 2020-04-26 11:27 我觉得你走入了思维的误区。
想做的事是按下快捷键后,执行截图->识别->查询这一系列操作,那直接把这三个操作写到同一个脚本里,再绑定到快捷键执行就行了,根本没必要让一个程序一直在后台不断检查有没有新图片再识别查询。

另外输入法的简繁体跟字体没关系,肯定是你碰到输入法的简繁切换功能了。记得ibus可以设置在不同程序中不同输入状态的。自己在输入法设置里找一下
前面的问题我曾尝试把截图命令加入到后面的OCR加翻译的脚本中,结果没反应。

输入法问题,还真不是简繁转换,我用的KDE版本,输入法是fcitx,但在FF不论按下CTRLSHIFT+F打开还是再按一下关闭,都是输出繁体。而且奇怪的是五笔字型没了。但在Kate中输入的确实简体。
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: 该把脚本放在哪里自动启动运行呢?

#4

帖子 astolia » 2020-04-26 22:48

elisir 写了: 2020-04-26 22:20 前面的问题我曾尝试把截图命令加入到后面的OCR加翻译的脚本中,结果没反应。
那应该是你的脚本写法有问题。你这样弄一个看

代码: 全选

#!/bin/bash
IMGFILE="$(tempfile).png"
scrot -sf "$IMGFILE"
TXTFILE="$(tempfile)"
tesseract "$IMGFILE" "$TXTFILE" -l eng+chi_sim+chi_sim_vert+chi_tra+chi_tra_vert --psm 7
goldendict "$(cat "${TXTFILE}.txt")"
rm -f "$IMGFILE" "${TXTFILE}.txt"
zhangjint5
帖子: 304
注册时间: 2011-01-02 12:31

Re: 该把脚本放在哪里自动启动运行呢?

#5

帖子 zhangjint5 » 2021-07-24 2:04

图形界面的程序开机启动放 ~/.config/autostart/my-app-to-startup.desktop
记住是放.desktop文件,不是直接放脚本
头像
大宝
帖子: 3052
注册时间: 2008-06-30 22:32
联系:

Re: 该把脚本放在哪里自动启动运行呢?

#6

帖子 大宝 » 2021-07-28 17:25

Kubuntu 是吧?
把启动器直接扔到 ~/.config/autostart/ 不就完事了?
如果是脚本则扔到 ~/.config/autostart-scripts
头像
大宝
帖子: 3052
注册时间: 2008-06-30 22:32
联系:

Re: 该把脚本放在哪里自动启动运行呢?

#7

帖子 大宝 » 2021-07-28 17:32

Kubuntu 还有更简单的:
【开始】菜单 ==> 【系统设置】中如下图设置
Screenshot_20210728_172800.jpg
回复