我正在将这个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
取代,但我不知道该怎么做。
答案 0 :(得分: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的正确答案。
答案 1 :(得分:2)
只是发现这很简单,随机本身支持从列表中获取随机条目!
只需使用cat (random choice $QUOTE_FILES)
它也可以在没有变量random choice /path/to/some/folder/*
或带有一堆参数random choice option1 option2 option3
您可以在这里找到random
的文档:
https://fishshell.com/docs/current/commands.html#random