วิธีตั้งค่าตัวแปร bash เป็นตัวเลขสุ่ม



ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

คุณสามารถสร้างตัวเลขสุ่มได้อย่างง่ายดายที่ bash prompt ซึ่งคุณสามารถใช้เพื่อตั้งค่าตัวเลขดังกล่าวเป็นตัวแปรได้ สิ่งนี้มีประโยชน์สำหรับทุกอย่างตั้งแต่การเขียนสคริปต์บางประเภทไปจนถึงการผจญภัยสวมบทบาทบนโต๊ะ ไม่ว่าคุณจะเขียนแคมเปญ D&D หรือสร้างยูทิลิตี้ด้วยภาษาทุบตีที่มีประสิทธิภาพคุณก็สามารถใช้โค้ดเพียงบรรทัดเดียวได้ นอกจากนี้ยังเป็นเครื่องมือที่มีประโยชน์อย่างมากเมื่อพยายามทำการตรวจสอบความปลอดภัยบางอย่างล่วงหน้า แต่คุณต้องจำไว้ว่าแครกเกอร์ที่ดีสามารถหลีกเลี่ยงตัวสร้างตัวเลขง่ายๆเหล่านี้ได้ ยังคงมีประโยชน์ในการสร้างรหัสผ่านและรหัสบางประเภทซึ่งอาจช่วยรักษาความปลอดภัยได้



มีหลายวิธีในการทำสิ่งนี้ให้สำเร็จและไม่ใช่ว่าทุกเทคนิคจะเหมาะกับทุกสถานการณ์ดังนั้นเราจึงพยายามอย่างเต็มที่เพื่อดูแต่ละวิธีและทดสอบเพื่อให้แน่ใจว่าได้ผล คุณจะต้องทำงานจากเทอร์มินัลสำหรับสิ่งนี้ดังนั้นให้ใช้ Ctrl + Alt + T หรือ Super (Windows) + T เพื่อเปิดเทอร์มินัลกราฟิกเริ่มต้นด้วยการพิมพ์เทอร์มินัลใน Dash เลือกจาก Application หรือ Whisker และเมนู System Tools หรือมุ่งหน้าไปยังเทอร์มินัลเสมือนอย่างจริงจังโดยใช้ Ctrl, Alt และคีย์ระหว่าง F1 และ F6



วิธีที่ 1: เลือกไบต์สุ่มแบบเต็ม

คุณสามารถสร้างตัวเลขสุ่มระหว่าง 1 ถึง 256 โดยเรียกใช้คำสั่งต่อไปนี้โดยตรงจาก bash prompt:



ของ -An -N1 -tu1 / dev / urandom

แม้ว่าบางครั้งคุณอาจเห็นคำสั่งนี้อ้างถึง / dev / random แทนที่จะเป็น / dev / urandom แต่คุณอาจไม่ต้องการเรียกใช้ด้วยวิธีนี้ สิ่งนี้สามารถปล้นโปรแกรมอื่น ๆ โดยไม่ได้ตั้งใจไม่ให้สามารถใช้เครื่องกำเนิดเมล็ดพันธุ์แบบสุ่มในระหว่างการใช้งานของคุณ เมื่อคุณเรียกใช้โปรแกรมและได้รับหมายเลขแล้วคุณสามารถมั่นใจได้ว่าจะทำงานในลักษณะนี้เช่นกัน:



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

สิ่งนี้จะตั้งค่าตัวแปร ranNum เป็นตัวเลขระหว่าง 1 ถึง 256 ซึ่งเลือกไว้ในเวลาที่คุณเรียกใช้ คุณสามารถเรียกใช้จากบรรทัดคำสั่งหรือจากภายในสคริปต์และควรทำงานไม่ว่าจะด้วยวิธีใดก็ตาม โปรดทราบว่าคุณสามารถแทนที่ ranNum ด้วยชื่อตัวแปรที่ถูกต้องได้

วิธีที่ 2: การตั้งค่าตัวแปรเป็นตัวเลขสุ่มระหว่าง 1 และอะไรก็ตาม

คุณสามารถเรียกใช้ echo $ [RANDOM% 40 + 1] จากบรรทัดคำสั่งเพื่อส่งตัวเลขสุ่มระหว่าง 1 ถึง 40 ตรงไปยังเอาต์พุตมาตรฐาน แต่คุณยังสามารถแทนที่ 40 ในคำสั่งด้วยตัวเลขใดก็ได้ ในที่สุดสถาปัตยกรรมของเครื่องโฮสต์ของคุณจะไม่มีตัวเลขหรืออาจจะทุบตี แต่ก็เป็นที่น่าสงสัยว่าคุณต้องใช้จำนวนที่สูงเช่นนี้

สมมติว่าคุณต้องการสร้างตัวเลขสุ่มระหว่าง 1 ถึง 10 สำหรับการกำหนดค่าตัวแปรของคุณ คุณสามารถเรียกใช้:

ranNum = $ [RANDOM% 10 + 1]

โปรดทราบว่าคุณสามารถแทนที่ 10 ด้วยค่าสูงสุดที่คุณต้องการได้ ค่านี้รวมอยู่ด้วยหมายความว่า 10 เป็นตัวเลขที่ส่งคืนที่ถูกต้อง หากคุณต้องการลดทีละรายการให้สร้างค่า 9 แทนการใช้คณิตศาสตร์ C หรือ C ++ สไตล์ -1 สิ่งเหล่านี้ไม่จำเป็นเมื่อตั้งค่าตัวแปรโดยใช้วิธีนี้และจะสร้างผลลัพธ์ที่ไม่คาดคิดโดยการเพิ่มหรือลบตัวเลข

วิธีที่ 3: การเลือกบิตสุ่มเดี่ยว

หากคุณต้องการตั้งค่าตัวแปรเป็นบิตสุ่มของศูนย์หรือหนึ่งคุณอาจต้องการแก้ไขโค้ดก่อนหน้าดังนี้:

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

รหัสนี้จะตั้งค่า ranNum เป็น 1 หรือ 0 ขึ้นอยู่กับว่าตัวเลขที่สุ่มตัวอย่างจากไฟล์ / dev / urandom ไฟล์เป็นคู่หรือคี่ สิ่งนี้จะมีประโยชน์หากคุณต้องการตั้งค่าสมการใช่หรือไม่ใช่ง่ายๆเป็นสถานะหนึ่งหรืออีกสถานะหนึ่ง

หากสิ่งนี้สุ่มไม่เพียงพอสำหรับสิ่งที่คุณกำลังทำอยู่คุณอาจได้รับหมายเลขสุ่มเพิ่มขึ้นเล็กน้อยโดยการโทรไปที่ไดเร็กทอรี / proc / sys / kernel / random โดยใช้:

ranNum = $ ((0x $ (ตัด -c1-1 / proc / sys / เคอร์เนล / สุ่ม / uuid)% 2))

อย่างไรก็ตามอีกครั้งสิ่งนี้จะตั้งค่าตัวแปรเป็น 1 หรือ 0 เท่านั้นซึ่งเหมาะสำหรับตรรกะไบนารี แต่ไม่เป็นประโยชน์สำหรับเวลาที่คุณอาจต้องการตัวเลขที่ยาวขึ้น อย่างไรก็ตามคุณสามารถใช้บรรทัดใดก็ได้ในสคริปต์ทุบตีหากคุณจำเป็นต้องทำเช่นนั้น ตัวเลือกที่สองนี้อาจจะดีกว่าสำหรับสถานการณ์ที่ตัวเลือกแรกล้มเหลวเช่นกัน

วิธีที่ 4: การเขียนสคริปต์ทุบตีเพื่อส่งกลับตัวเลขสุ่ม

หากคุณต้องการมีเครื่องมือที่มีประโยชน์สำหรับการสร้างตัวเลขสุ่มได้ตลอดเวลาคุณสามารถสร้างสคริปต์บรรทัดคำสั่งเพื่อทำเช่นนั้น สิ่งนี้ไม่ใช้อะไรมากไปกว่าภาษาทุบตีมาตรฐานที่พรอมต์ของ Linux ที่ทันสมัยที่สุดจึงมีการแจกจ่าย Linux ที่ทันสมัยและระบบปฏิบัติการที่ใช้ BSD ไม่กี่ระบบควรจัดการสิ่งนี้ได้ดี คุณอาจต้องการใช้ cd ~ / .local / bin ก่อนที่จะดำเนินการต่อไปเพื่อให้แน่ใจว่าคุณจะมีสคริปต์ของคุณอยู่ในตำแหน่งที่คุณสามารถเรียกใช้งานได้จากทุกที่

พิมพ์ nano random หรือ vi random เพื่อเริ่มต้นแม้ว่าคุณจะใช้ชื่ออื่นสำหรับสคริปต์ของคุณก็ได้หากต้องการ คุณยังสามารถใช้โปรแกรมแก้ไขข้อความอื่นได้เช่นกันหากต้องการ สมมติว่าคุณต้องการสร้างรายการที่จะส่งคืน 1 หรือ 0 เมื่อพิมพ์ที่บรรทัดคำสั่ง ป้อนข้อมูลต่อไปนี้แล้วกด 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 เป็นประจำ เปลี่ยนข้อความของสคริปต์ทุบตีเป็น:

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

ตอนนี้คุณสามารถเรียกใช้จากบรรทัดคำสั่งได้อย่างง่ายดายโดยการพิมพ์สุ่มเมื่อใดก็ตามที่คุณต้องการสร้างตัวเลขสุ่ม

อ่าน 4 นาที