linux - shell 脚本 : pacmd: no command found

标签 linux bash shell

我正在尝试编写一个简单的 shell 脚本来检测 clementine 是否正在运行。如果是,它将关闭省电功能。我在终端中尝试了 pacmd 命令,它运行良好,但在脚本中却没有。在第一个错误“找不到 pacmd 没有命令”之后,我输入了完整路径,然后它说“./noSleep.sh:第 5 行:[/usr/bin/pacmd:没有这样的文件或目录”。所以我不知道为什么找不到它。有帮助吗?

我不想在 clementine 不播放音乐时关闭省电功能。所以我不想用 ps x | grep 克莱门汀。

#!/bin/bash

while true
do
        if [/usr/bin/pacmd list-sink-inputs | grep Clementine]
    then
            xset -dpms; xset s off
    else
            xset +dpms; xset s on
    fi

    sleep 2m
done

脚本更新:

#!/bin/bash

while true
do
    if [ `echo pacmd list-sink-inputs | grep "Clementine" | wc -l` ]
    then
            xset -dpms; xset s off
            echo off
    else
            xset +dpms; xset s on
            echo on
    fi

    sleep 30s
done

出于某种原因,它每次都返回 true。我在测试 pacmd 语句时测试了 Clementine 不玩和玩。字符串 Clementine 在播放时显示,不播放时不显示,所以我不确定为什么它不起作用。

最佳答案

总是在 [ 之后和 ] 之前在 if 语句中使用一个空格,正如上面在 cyrus 的评论中提到的那样,你也没有在你的 if 语句中测试任何东西

grep -c "Clementine" 命令检查 "Clementine" 在命令输出中出现的次数 /usr/bin/pacmd list-sink -inputs 所以如果它大于 0 它可能是打开的。

while true
do
    if [ "$(/usr/bin/pacmd list-sink-inputs|grep -c "Clementine")" -gt  0  ]
    then
            xset -dpms; xset s off
    else
            xset +dpms; xset s on
    fi

    sleep 2m
done

关于linux - shell 脚本 : pacmd: no command found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26942779/

相关文章:

bash - CentOS 时间跳跃数秒——有时

java - 如何找到 Java 代码库中的所有构造函数?

linux - 在 unix 上部署 shell 脚本的惯用方法

bash - 在 .environment 文件中定义一个变量并在 .sh 文件中使用(引用)该变量

c - 为什么 iconv 函数需要一个非常量输入缓冲区?

TOP/HTOP中Linux进程虚拟内存列

bash - 替换 shell 脚本参数中的环境变量

java - 为什么我的正则表达式在 shell 脚本中失败,尽管它在 jregex 中工作?

linux - Bottle.py MVC "Template not found."

linux - 如何从 Linux (ubuntu) 中的 bash 脚本运行 exec bash 命令?