Shell脚本:简单的参数比较不起作用

时间:2014-03-02 12:45:29

标签: bash shell

我有以下shell脚本:

#!/bin/sh
# Musikscript für Android-App
#sudo killall -9 mplayer
#sudo  mplayer -ao alsa:device=hw=0.0 -playlist /home/pi/media/radio/ANTENNE-BAYERN.m3u   &
echo $1
echo $2

if [ "$1" = "playlist" ]
then
    sudo mplayer -ao alsa:device=hw=0.0 -playlist $2 &
fi

if [ "$1" = "playfile" ]
then
    sudo mplayer -ao alsa:device=hw=0.0 $2 &
fi

if [ "&1" = "stop" ]
then
    sudo killall -9 mplayer
fi

if [ "$1" = "volume" ]
then
    sudo amixer set PCM $2
fi

当我尝试使用以下命令运行文件时

sudo sh /home/pi/scripts/mplayerscript.sh "playlist" "/home/pi/media/radio/ANTENNE-BAYERN.m3u"

它没有问题,但是

sudo sh /home/pi/scripts/mplayerscript.sh "stop"

仅执行2条回波线。

2 个答案:

答案 0 :(得分:2)

"&1" = "stop" ..我认为你的意思是"$1" = "stop":)

答案 1 :(得分:0)

是的,我认为你的意思是1美元而不是& 1。

但是当你有这样的脚本时,条件只基于一个参数,比如脚本中的$ 1,那么使用“case”会更容易。

中的案例“$ 1”

“播放列表”)

  sudo mplayer -ao alsa:device=hw=0.0 -playlist $2 &
 ;;

“playfile”)

 sudo mplay -ao alsa:device=hw=0.0 $2 &
 ;;

“停止”)

 sudo killall -9 mplayer
 ;;

“体积”)

 sudo amixer set PCM $2
 ;;

ESAC