这个想法是在 KDE 启动期间播放“问候”声音文件。
例如,在一个文件夹中,将有 10 个音频文件。比方说,命名1.ogg 2.ogg 3.ogg等。
实际播放的文件称为greetings.ogg.
如何随机获取这些文件之一并将其重命名为greetings.ogg不丢失 10 个原始文件?
我尽力了,但我失败了。
您不能“重命名”文件和“不丢失原始文件”,您必须将 ( man cp) 随机选择的原始文件复制到greetings.ogg,例如:
# select among 0.ogg .. 9.ogg
cp $(( $RANDOM % 10 )).ogg greetings.ogg
Run Code Online (Sandbox Code Playgroud)
阅读man bash,您可能想要初始化$RANDOM。
如果您的文件不一定使用适合使用 shell$RANDOM变量的简单算术方案命名,那么另一种选择是使用shuf:
shopt -s extglob
cp -- "$(printf '%s\n' !(greeting).ogg | shuf -n 1)" greeting.ogg
Run Code Online (Sandbox Code Playgroud)
ksh 样式的扩展 glob!(greeting).ogg避免将现有文件复制到自身 - 您可以通过将文件复制到其他目录来避免这种情况。