在 Fish shell 中获取随机文件

ico*_*ast 2 fish

我正在将此 Zsh 函数翻译为 Fish

function random_quote() {
  QUOTE_FILES=( $PREFS_ROOT/quotes/* )
  cat $QUOTE_FILES[$RANDOM%$#QUOTE_FILES+1]
}
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所得到的:

function random_quote
  set QUOTE_FILES $PREFS_ROOT/quotes/*
  cat $QUOTE_FILES[$RANDOM%$#QUOTE_FILES+1]
end
Run Code Online (Sandbox Code Playgroud)

线路cat还需要修复。我知道RANDOM应该替换为random,但我不知道如何做其余的事情。

Nik*_*las 5

刚刚发现其实很简单,random本身就支持从列表中获取随机条目!

只需使用cat (random choice $QUOTE_FILES)

它也可以在没有变量的情况下工作random choice /path/to/some/folder/*

或者有一堆参数random choice option1 option2 option3

您可以在这里找到文档randomhttps ://fishshell.com/docs/current/cmds/random.html