무작위 명령 실행

무작위 명령 실행

내 bash 스크립트가 아래 주어진 임의의 명령을 실행하기를 원합니다. 예를 들어

[mysterious command] ("command1", "command2", "command3")

답변1

명령을 배열에 넣으세요.

cmds=( "cmd1" "cmd2" "cmd3" )

$RANDOM${#cmds[@]}는 배열의 길이로 계산된 난수입니다 (이 경우 3). $(( RANDOM % ${#cmds[@]} ))배열의 길이보다 작은 0과 1 사이의 임의의 숫자 cmds, 즉 0, 1 또는 2가 됩니다.

i=$(( RANDOM % ${#cmds[@]} ))

다음을 수행하면 $cmds인덱스에 해당하는 문자열을 선택하여 $i명령으로 실행합니다.

${cmds[i]}

아니면 한 번에 모든 작업을 수행합니다(조금 무서운 것 같습니다).

${cmds[RANDOM % ${#cmds[@]}]}

답변2

이것은 당신이 찾고있는 것을 달성해야합니다.

COMMANDS=("command1" "command2" "command3")
$(shuf -n1 -e "${COMMANDS[@]}")

배열을 가져와 이를 사용하여 shuf임의의 명령을 생성합니다.

업데이트: @steeldriver에 따라 shuf 명령이 변경되었습니다.

관련 정보