【问题标题】:use input from .txt file for if command shell linux使用来自 .txt 文件的输入作为 if 命令 shell linux
【发布时间】:2023-03-16 15:24:02
【问题描述】:

我需要编写一个脚本,每次运行时播放不同的声音。如果您有更简单的方法,请告诉我。现在下面的脚本是我所拥有的,但我认为 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

【问题讨论】:

标签: linux shell if-statement random cat


【解决方案1】:

例如: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

这将播放链接的文件。换句话说:如果您想更改要播放的文件,您只需删除该链接,然后创建另一个。因此,不要将文件内容与文件名进行超级非优雅的映射......只需始终使用“相同”文件,但使用链接指向实际不同的内容。

【讨论】:

    猜你喜欢
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多