我是Shell脚本的新手,并且shuf函数有问题。 这是我的代码
declare -a myarray=( 'A' 'B' 'C' 'D' 'E' 'F' )
myarray = $(shuf -e "${myarray[@]}")
echo "$myarray"
我创建一个包含六个字符的数组。然后,我随机将它们洗牌并打印出来。我的问题是,如果要添加另一行,例如
echo ${myarray[2]}
这实际上不会在第3个位置打印随机排序的字符。相反,它将始终打印“ C”。我怎样才能真正保存排序后的数组?我需要制作另一个数组吗?
非常感谢您
答案 0 :(得分:0)
bash中的数组用()
定义。 Bash不是静态键入的,因此将myarray
设置为等于某些字符输出即可做到这一点,使其成为您可以用echo $myarray
回显以查看完整输出的字符串。
您需要将输出包装在括号中,以明确表明您的新myarray
也应该是数组:
myarray=($(shuf -e "${myarray[@]}"))