bash 변수를 난수로 설정하는 방법



문제를 제거하기 위해 도구를 사용해보십시오

bash 프롬프트에서 난수를 쉽게 생성 할 수 있으며,이를 사용하여 해당 숫자를 변수로 설정할 수 있습니다. 이것은 특정 유형의 스크립트 작성부터 탁상용 롤 플레잉 모험에 이르기까지 모든 것에 유용합니다. D & D 캠페인을 작성하든 강력한 bash 언어로 유틸리티를 작성하든 일반적으로 한 줄의 코드만으로도 벗어날 수 있습니다. 이것은 또한 특정 보안 검사를 수행하려고 할 때 매우 유용한 도구이지만 좋은 크래커가 이러한 간단한 숫자 생성기를 우회 할 수 있다는 점을 기억하고 싶을 것입니다. 특정 유형의 비밀번호와 코드를 생성하는 데 여전히 유용하므로 보안을 유지하는 데 도움이 될 수 있습니다.



이를 수행하는 몇 가지 방법이 있으며 모든 기술이 모든 상황에 적합한 것은 아니므로 각 방식을 살펴보고 제대로 작동하는지 테스트하기 위해 최선을 다했습니다. 이를 위해서는 터미널에서 작업해야하므로 Ctrl + Alt + T 또는 Super (Windows) + T를 사용하여 그래픽 터미널을 열고 대시에 터미널을 입력하여 시작하고 응용 프로그램 또는 수염에서 선택합니다. 및 시스템 도구 메뉴 또는 Ctrl, Alt 및 F1과 F6 사이의 키를 사용하여 본격적으로 가상 터미널로 이동하십시오.



방법 1 : 전체 임의 바이트 선택

bash 프롬프트에서 직접 다음 명령을 실행하여 1에서 256 사이의 임의의 숫자를 생성 할 수 있습니다.



of -An -N1 -tu1 / dev / urandom

때때로이 명령이 / dev / urandom 대신 / dev / random을 참조하는 것을 볼 수 있지만이 방식으로 실행하고 싶지는 않을 것입니다. 이것은 의도하지 않게 다른 프로그램이 무작위 시드 생성기를 사용하는 동안 사용할 수 없게 할 수 있습니다. 프로그램을 실행하고 번호를 얻은 후에는 다음과 같이 작동하는지 확인할 수 있습니다.



ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom)))

이렇게하면 ranNum 변수를 실행할 때 선택한 1에서 256 사이의 숫자로 설정됩니다. 명령 줄 또는 스크립트 내부에서 실행할 수 있으며 어느 쪽이든 작동합니다. ranNum을 유효한 변수 이름으로 바꿀 수 있습니다.

방법 2 : 변수를 1과 무엇 사이의 난수로 설정

명령 줄에서 echo $ [RANDOM % 40 + 1]을 실행하여 1에서 40 사이의 임의의 숫자를 표준 출력으로 곧바로 보낼 수 있지만 명령의 40을 거의 모든 숫자로 바꿀 수도 있습니다. 결국 호스트 컴퓨터의 아키텍처는 숫자가 떨어지거나 bash가 발생할 수 있지만 어쨌든 그렇게 높은 숫자가 필요한지는 의심 스럽습니다.

변수 구성에 대해 1에서 10 사이의 임의의 숫자를 생성한다고 가정 해 보겠습니다. 다음을 실행할 수 있습니다.

ranNum = $ [RANDOM % 10 + 1]

10을 원하는 상한 값으로 바꿀 수 있습니다. 이 값은 포괄적입니다. 즉, 10은 유효한 반환 수치입니다. 1 씩 줄이려면 C 또는 C ++ 스타일 -1 수학을 사용하는 대신 값을 9로 만드십시오. 이 방법을 사용하여 변수를 설정할 때는 필요하지 않으며 실제로 숫자를 더하거나 빼서 예기치 않은 결과를 생성합니다.

방법 3 : 단일 임의 비트 선택

0 또는 1의 임의 비트로 변수를 설정해야하는 경우 다음과 같이 이전 코드를 수정할 수 있습니다.

ranNum = $ (($ (od -An -N1 -i / dev / urandom) % 2))

이 코드는 ranNum을 1 또는 0으로 설정합니다. / dev / urandom 파일이 짝수이거나 홀수였습니다. 이것은 하나 또는 다른 상태에 대한 간단한 예 또는 아니오 방정식을 설정해야하는 경우 유용 할 수 있습니다.

이것이 작업중인 작업에 대해 충분히 임의적이지 않은 경우 다음을 사용하여 / proc / sys / kernel / random 디렉토리를 호출하여 약간 더 임의의 번호를 얻을 수 있습니다.

ranNum = $ ((0x $ (cut -c1-1 / proc / sys / kernel / random / uuid) % 2))

다시 한 번, 이것은 변수를 1 또는 0으로 만 설정합니다. 이는 이진 논리에 적합하지만 더 긴 숫자가 필요한 경우에는 유용하지 않습니다. 그러나 필요한 경우 bash 스크립트에서 이러한 행을 사용할 수 있습니다. 이 두 번째 옵션은 실제로 첫 번째 옵션도 실패하는 상황에 더 적합 할 수 있습니다.

방법 4 : 난수를 반환하도록 bash 스크립트 작성

언제든지 난수를 생성 할 수있는 편리한 도구를 원할 경우이를 수행하는 명령 줄 스크립트를 만들 수 있습니다. 이것은 대부분의 최신 Linux 프롬프트에서 사용하는 표준 bash 언어 이상을 사용하지 않으므로 거의 모든 최신 Linux 배포판과 상당수의 BSD 기반 운영 체제에서이를 잘 처리합니다. 더 진행하기 전에 cd ~ / .local / bin을 사용하여 스크립트를 어디에서나 실행할 수있는 위치에 있는지 확인할 수 있습니다.

원하는 경우 스크립트에 다른 이름을 사용할 수도 있지만 nano random 또는 vi random을 입력하여 시작합니다. 원하는 경우 다른 텍스트 편집기를 사용할 수도 있습니다. 명령 줄에 입력 할 때 1 또는 0을 반환하는 하나를 만들고 싶다고 가정 해 보겠습니다. nano를 사용하는 경우 다음을 입력 한 다음 Ctrl + O를 눌러 저장합니다.

#! / bin / bash ranNum = $ (($ RANDOM % 2)) echo $ ranNum

Ctrl + X를 입력하여 텍스트 편집기를 종료하고 명령 줄로 돌아가서 chmod + x random을 사용하여 스크립트를 사용할 수 있도록합니다. 물론 ranNum = $ [RANDOM % 10 + 1], ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom))) 또는 ranNum = $ (($ RANDOM % 2)) 원하는 숫자의 종류를 정확하게 제어 할 수 있습니다. 1에서 50 사이의 숫자를 정기적으로 선택한다고 가정 해 보겠습니다. bash 스크립트의 텍스트를 다음과 같이 변경하십시오.

#! / bin / bash ranNum = $ [RANDOM % 50 + 1] echo $ ranNum

이제 임의의 숫자를 생성 할 때마다 random을 입력하여 명령 줄에서 쉽게 실행할 수 있습니다.

4 분 읽기