1

我正在把这个 Zsh 函数翻译成 Fish

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

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

function random_quote
  set QUOTE_FILES $PREFS_ROOT/quotes/*
  cat $QUOTE_FILES[$RANDOM%$#QUOTE_FILES+1]
end

cat条线还需要修理。我知道RANDOM应该替换为random,但我不知道该怎么做。

4

2 回答 2

3

怎么样

function random_quote
  set -l QUOTE_FILES $PREFS_ROOT/quotes/*
  set -l n (math 'scale=0;'(random)'%'(count $QUOTE_FILES)'+1')
  cat $QUOTE_FILES[$n]
end

这个答案已经过时了。请遵循@Niklas 的正确答案。

于 2014-01-02T11:53:09.783 回答
3

刚刚发现它真的很简单,随机本身支持从列表中获取随机条目!

只需使用cat (random choice $QUOTE_FILES)

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

或者有一堆论据random choice option1 option2 option3

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

于 2019-05-25T17:59:07.647 回答