使用来自.txt文件的输入来命令shell linux

时间:2016-11-26 19:51:38

标签: linux shell if-statement random cat

我需要编写一个脚本,每次运行时都会播放不同的声音。如果你有一个更简单的方法,请告诉我。现在以下脚本就是我所拥有的,但我不认为cat命令正如我所希望的那样工作。请协助。

#! /bin/sh
### BEGIN INIT INFO
# Provides:          rc.local
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Run /etc/rc.local if it exist
### END INIT INFO

if [ "cat /home/lucio/Desktop/welcomevar" = "10" ];
then
echo 1 > /home/lucio/Desktop/welcomevar; mplayer         /home/lucio/Desktop/sounds/welcome1.mp3
fi

if [ "cat /home/lucio/Desktop/welcomevar" = "1" ];
then
echo 2 > /home/lucio/Desktop/welcomevar; mplayer     /home/lucio/Desktop/sounds/welcome2.mp3
fi

if [ "cat /home/lucio/Desktop/welcomevar" = "2" ];
then
echo 3 > /home/lucio/Desktop/welcomevar; mplayer /home/lucio/Desktop/sounds/welcome3.mp3
fi

if [ "cat /home/lucio/Desktop/welcomevar" = "3" ];
then
echo 4 > /home/lucio/Desktop/welcomevar; mplayer     /home/lucio/Desktop/sounds/welcome4.mp3
fi

if [ "cat /home/lucio/Desktop/welcomevar" = "4" ];
then
echo 5 > /home/lucio/Desktop/welcomevar; mplayer         /home/lucio/Desktop/sounds/welcome5.mp3
fi

if [ "cat /home/lucio/Desktop/welcomevar" = "5" ];
then
echo 6 > /home/lucio/Desktop/welcomevar; mplayer     /home/lucio/Desktop/sounds/welcome6.mp3
fi

if [ "cat /home/lucio/Desktop/welcomevar" = "6" ];
then
echo 7 > /home/lucio/Desktop/welcomevar; mplayer     /home/lucio/Desktop/sounds/welcome7.mp3
fi

if [ "cat /home/lucio/Desktop/welcomevar" = "7" ];
then
echo 8 > /home/lucio/Desktop/welcomevar; mplayer     /home/lucio/Desktop/sounds/welcome8.mp3
fi

if [ "cat /home/lucio/Desktop/welcomevar" = "8" ];
then
echo 9 > /home/lucio/Desktop/welcomevar; mplayer /home/lucio/Desktop/sounds/welcome9.mp3
fi

if [ "cat /home/lucio/Desktop/welcomevar" = "9" ];
then
echo 10 > /home/lucio/Desktop/welcomevar; mplayer            /home/lucio/Desktop/sounds/welcome10.mp3
fi

exit 0

1 个答案:

答案 0 :(得分:0)

请参阅此处,例如:command line arguments from a file content ...但请注意:您的方法看起来真的很像一些肮脏的黑客。

你在整个地方重复着同样的道路;你甚至硬编码用户名。

如果你想让你的linux根据某个文件播放不同的声音;我认为有更简单的方法。

例如,您可以简单地执行类似

的操作
cd Desktop
ln -s sounds/welcomeX.mp3 welcome.mp3

以上内容将从您的某个mp3文件中创建一个名为Desktop / welcome.mp3的链接。现在你只需做

 mplayer /home/lucio/Desktop/welcome.mp3

这将播放链接文件。换句话说:如果要更改要播放的文件,只需删除该链接,然后再创建另一个链接。因此,不要将文件内容的超级非优雅映射到文件名...只需使用"相同"文件一直在使用,但使用链接指向实际上不同的内容。