Bash - 命令未找到,但仍然有效

时间:2014-12-03 21:50:37

标签: bash

我为音量修改编写了这样的代码:

#!/bin/bash

case "$1" in
        down)
            $(amixer -c 0 sset Speaker  5%-)
            $(amixer -D pulse sset Master 5%-)  
            ;;  
        up)
            $(amixer -c 0 sset Speaker  5%+)
            $(amixer -D pulse sset Master 5%+)
            ;;
        mute)
            $(amixer -c 0 sset Speaker  0)
            $(amixer -D pulse sset Master 0)
            ;;
        *)
            echo $"Usage: $0 {down|up|mute}"
            exit 1
esac

代码工作正常,但是当我在终端执行它时,我得到了以下信息:

[akfaz@localhost utils]$ ./audioControl.sh up
./audioControl.sh: line 9: Simple: command not found
./audioControl.sh: line 10: Simple: command not found

你知道发生了什么吗?

1 个答案:

答案 0 :(得分:6)

您必须删除所有命令替换:$( ),不需要它们。

当你必须在里面返回命令的结果时需要它,比如在输入变量时:

var=$(echo "ok")

请参阅http://mywiki.wooledge.org/BashFAQ/002http://mywiki.wooledge.org/CommandSubstitution