标签: shell-script

如何清除shell脚本发送的通知

在我的脚本中,我向用户发送通知并提示他输入一些数据。之后我想清除之前发送的通知。通知应保留在托盘中,直到用户输入数据。

目前我正在使用notify-send,但只能通过超时才能清除。

我想要的是这样的:

send-notification --title="Hey, enter some data pls" --id=999
prompt-to-enter-data
delete-notification --id=999
Run Code Online (Sandbox Code Playgroud)

我正在使用 linux Mint 20。带有 cinnamon DE (v4.6.6)。

notify-osd未安装。

linux notifications shell-script cinnamon

6
推荐指数
1
解决办法
1848
查看次数

在 OSX 下挂载特定磁盘/内存卡时运行脚本

在 OSX 下安装驱动器时如何运行脚本?

我的用例是,当我的 USB 存储器/硬盘驱动器插入我的 USB 读卡器时,我想从我的 USB 存储器/硬盘驱动器中自动复制图像,当插入 DVD 或 CD 时,我想将其复制以存储在我的媒体中心。

我试过使用马可波罗(如在这个相关问题中提到的),但从我所看到的,它只能检测到某个 USB 设备的存在,而不是特定硬盘驱动器的存在。

usb storage mount shell-script macos

5
推荐指数
1
解决办法
6773
查看次数

使用 shell 脚本,可以判断它何时使用 cron 运行还是手动运行?

使用 shell 脚本,可以判断它何时使用 cron 运行还是手动运行?

更新:

有人问我为什么想知道。我的 cron 作业将被记录,如果有人手动执行它,我希望能够记录它。

cron shell-script

5
推荐指数
2
解决办法
3571
查看次数

通过 shell 脚本用 file 命令验证 ASCII 文件

使用 file 命令,我需要验证许多文件是 ASCII 还是其他格式

有时我从文件命令中得到:

  file1: ASCII English text
Run Code Online (Sandbox Code Playgroud)

有时我从文件命令得到不同的答案

  file2: Non-ISO extended-ASCII English text, with very long lines
Run Code Online (Sandbox Code Playgroud)

我真的不确定是否还有其他语法不同的答案

我的问题是:

我编写了以下 ksh 语法来验证文件是否为 ASCII,但我不确定

以下语法是验证 ASCII 格式的最佳语法?

   [[ ` file  $some_file | grep –c ASCII ` = 1 ]] && print "you have ascii file for sure"
Run Code Online (Sandbox Code Playgroud)

如果有人有其他建议来确定验证 ASCII 格式!,我会很高兴看到

shell-script

5
推荐指数
2
解决办法
3198
查看次数

每次解锁屏幕时,如何让 Ubuntu 自动运行程序?

我有一个脚本,我想在每次屏幕解锁时自动调用。Ubuntu 是否为希望这样做的用户提供一些支持?

linux shell-script ubuntu

5
推荐指数
1
解决办法
5526
查看次数

PS 或 /proc/ 中未列出的进程

我试图弄清楚如何操作一个相当大的 Java 程序“prog”。如果我转到它的 /bin/ 目录并配置它的 setenv.sh 和 prog.sh 以使用本地目录和我当前的用户帐户。然后我尝试通过“./prog.sh start”运行它。以下是 prog.sh 的所有相关部分:

USER=(my current account)
_CMD="/opt/jdk/bin/java -server -Xmx768m -classpath "${CLASSPATH}" -jar "${DIR}/prog.jar""
case "${ACTION}" in
    start)
        nohup su ${USER} -c "exec ${_CMD} >>${_LOGFILE} 2>&1" >/dev/null &
        echo $! >${_PID}
        echo "Prog running. PID="`cat ${_PID}`
        ;;
    stop)
        PID=`cat ${_PID} 2>/dev/null`
        echo "Shutting down prog: ${PID}
        kill -QUIT ${PID} 2>/dev/null
        kill ${PID} 2>/dev/null
        kill -KILL ${PID} 2>/dev/null
        rm -f ${_PID}
        echo "STOPPED `date`" >>${_LOGFILE}
        ;;
Run Code Online (Sandbox Code Playgroud)

当我实际执行 ./prog.sh start 时,它会启动。但是我在进程列表中根本找不到它。我也不能使用 shell 脚本使用的相同命令手动杀死它。但是我可以说它正在运行,因为如果我执行 ./prog.sh …

linux bash process shell-script

5
推荐指数
1
解决办法
1万
查看次数

清理 sha256sum 输出

运行sha256sum文件夹/文件`返回

711ad4b9939e0e20e591d753103717f40e794babc4129a0670fd342309bec5af *folder/file
Run Code Online (Sandbox Code Playgroud)

我想输出总和旁边的文件名,使其看起来像:

711ad4b9939e0e20e591d753103717f40e794babc4129a0670fd342309bec5af file
Run Code Online (Sandbox Code Playgroud)

我该如何更改输出?

linux shell-script

5
推荐指数
1
解决办法
6622
查看次数

进度指示器-掉落的一副牌(Bash)

我以一副落下的纸牌的形式编写了一个进度指示器(我妻子的想法)。

它尚未达到最终形式。这是代码:

vdeck="| | | | | "
hdeck[1]="__ | | | |"
hdeck[2]="__ __ | | |"
hdeck[3]="__ __ __ | |"
hdeck[4]="__ __ __ __ |"
hdeck[5]="__ __ __ __ __"

while true
do
    clear
    echo -n -e "\r$vdeck"
    sleep 0.8

    for i in 1 2 3 4 5
    do
        echo -n -e "\r${hdeck[$i]}"
        sleep 0.2
    done
    clear
done
Run Code Online (Sandbox Code Playgroud)

是否可以在没有 hdeck 数组的情况下优化此代码并获得相同的效果?增加'|' 意味着增加“hdeck”数组组合,这不好。

bash shell-script

5
推荐指数
1
解决办法
342
查看次数

即使在管道关闭后,如何继续从管道中读取数据?

我有一个 ksh 脚本调用:

while read LINE do...

输入已被重定向(未显示),以便它从管道读取输入。

问题是当管道的写入器关闭时, read 返回 false 并退出循环。

我希望它在管道关闭后继续读取(写入过程可能会不时重新启动,导致这种情况)。

我尝试将整个读取 LINE 包装在一个子外壳中并循环遍历整个子外壳,但是 read 在管道关闭后只得到一个空行,而不是像脚本正常启动时那样阻塞直到有更多输入。

unix shell ksh shell-script

5
推荐指数
1
解决办法
2594
查看次数

如何在 shell 脚本中使用 -ne 标志进行 echo?

我正在尝试创建一个 shell 脚本来接受一个参数并使用它来命名终端选项卡。因此,如果脚本的名称是 tabnm,则 tabnm "test" 应该将当前选项卡重命名为 "test"

这是我的代码:

#!/bin/sh
echo -ne "\e]1;$1\a"
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我得到了这个输出:

robin@icarus $ sh tabnm.sh test
-ne \e]1;test

如果我直接在 shell 中运行 echo -ne "\e]1;Test\a" ,选项卡将被重命名。

linux bash iterm shell-script bash-scripting

5
推荐指数
1
解决办法
1万
查看次数