2014-12-03 82 views
2

我寫了這樣的代碼爲音量調整:巴什 - 命令沒有找到,但仍然有效

#!/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 

好代碼工作正常,但是當我在終端執行它,我得到以下信息:

[[email protected] utils]$ ./audioControl.sh up 
./audioControl.sh: line 9: Simple: command not found 
./audioControl.sh: line 10: Simple: command not found 

你知道發生了什麼嗎?

回答

6

您必須刪除所有命令替換:$(),它們不是必需的。

當你返回命令的結果裏,餵養變量時,喜歡它的需要:

var=$(echo "ok") 

見見http://mywiki.wooledge.org/BashFAQ/002http://mywiki.wooledge.org/CommandSubstitution

+2

你可能要添加一個解釋像「輸出的命令看起來像'簡單的值不被使用'(或任何以'Simple'開頭的文本),所以'Simple'被當作執行的命令,因此是錯誤消息。「 – Alfe 2014-12-03 22:01:26

+0

感謝您解釋更多。 – 2014-12-03 22:07:08