linux - 将 .txt 文件中的输入用于 if 命令 shell linux

标签 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

最佳答案

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

你到处都在重复同一条路;你甚至硬编码了用户名。

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

例如,你可以简单地做一些像

cd Desktop
ln -s sounds/welcomeX.mp3 welcome.mp3

上面的代码将从您的一个名为 Desktop/welcome.mp3 的 mp3 文件创建一个链接。现在你只需要做

 mplayer /home/lucio/Desktop/welcome.mp3

这将播放链接的 文件。换句话说:如果你想改变要播放的文件,你只需删除那个链接,然后创建另一个。因此,与其将文件内容到文件名进行 super 非优雅的映射,不如一直使用“相同”文件,但使用链接指向实际不同的内容。

关于linux - 将 .txt 文件中的输入用于 if 命令 shell linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40822483/

相关文章:

c - 如何通过 mips 中的其他进程获取正在运行的进程堆栈的回溯?

linux - 根据指示执行命令的有效方法

linux - 检查linux机器是否空闲

python - 从不同的路径调用 python 脚本并更改路径

sql - "IF"处或附近的 Postgres 语法错误

regex - 在使用 GREP 和 REGEX 时遇到问题

bash - 防止在 heredocs 中计算反引号中的表达式

java - 使用 equals 方法比较两个对象,Java

Java 循环和 If else 语句未完成

linux - 如何使用 shell 创建包文件夹?