Bash Değişkenlerini Rastgele Sayılara Ayarlama



Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin

Bash komut isteminde kolayca rastgele bir sayı üretebilir ve daha sonra söz konusu sayıyı değişken olarak ayarlamak için kullanabilirsiniz. Bu, belirli türden komut dosyaları yazmaktan masaüstü rol yapma maceralarını çalıştırmaya kadar her şey için kullanışlıdır. İster bir D&D kampanyası yazıyor olun, ister güçlü bash dilinde bir yardımcı program yazıyor olun, genellikle tek bir kod satırıyla işin içinden çıkabilirsiniz. Bu aynı zamanda, belirli güvenlik kontrollerini önceden gerçekleştirmeye çalışırken çok yararlı bir araçtır, ancak iyi korsanların bu basit sayı oluşturucuları atlatabileceğini hatırlamak isteyeceksiniz. Her halükarda her şeyin güvenliğini sağlamaya yardımcı olabilecek belirli türden şifreler ve kodlar oluşturmak için hala yararlıdırlar.



Bunu başarmanın birkaç farklı yolu vardır ve her teknik her durum için doğru değildir, bu yüzden her yola bir göz atmak için elimizden gelenin en iyisini yaptık ve çalıştığından emin olmak için test ettik. Bunun için bir terminalden çalışmanız gerekecek, bu nedenle ya Ctrl + Alt + T ya da Super (Windows) + T tuşlarını kullanarak bir grafik terminali açın, Dash'e terminal yazarak başlayın, Uygulama ya da Whisker'dan seçin ve Sistem Araçları menüleri veya Ctrl, Alt ve F1 ile F6 arasında bir tuş kullanarak ciddi bir şekilde sanal bir terminale gidin.



Yöntem 1: Tam Bir Rastgele Bayt Seçme

Aşağıdaki komutu doğrudan bash isteminden çalıştırarak 1 ile 256 arasında rastgele bir sayı üretebilirsiniz:



-An -N1 -tu1 / dev / urandom

Bazen bu komutun / dev / urandom yerine / dev / random'a başvurulduğunu görseniz de, muhtemelen bu şekilde çalıştırmak istemeyeceksiniz. Bu, diğer programların sizin kullanımınız sırasında rastgele tohum oluşturucuyu kullanmasını istemeden mahvedebilir. Programı çalıştırıp bir numara aldıktan sonra, şu şekilde de çalışacağından emin olabilirsiniz:



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

Bu, ranNum değişkenini çalıştırdığınız anda seçilen 1 ile 256 arasında bir sayıya ayarlayacaktır. Komut satırından veya bir komut dosyasının içinden çalıştırabilirsiniz ve her iki şekilde de çalışmalıdır. RanNum'u herhangi bir geçerli değişken adıyla değiştirebileceğinizi unutmayın.

Yöntem 2: 1 ile Herhangi Bir Arasında Rasgele Bir Sayıya Bir Değişken Ayarlama

1 ile 40 arasında rastgele bir sayıyı doğrudan standart çıktıya göndermek için komut satırından echo $ [RANDOM% 40 + 1] çalıştırabilirsiniz, ancak komuttaki 40'ı hemen hemen herhangi bir sayıyla da değiştirebilirsiniz. Sonunda ana makinenizin mimarisi basamaksız kalacak veya belki bash olacak, ancak yine de bu kadar yüksek bir sayıya ihtiyacınız olduğu şüphelidir.

Değişken yapılandırmanız için 1 ile 10 arasında rastgele bir sayı oluşturmak istediğinizi varsayalım. Koşabilirsin:

ranNum = [RASGELE% 10 + 1]

10'u istediğiniz herhangi bir üst değerle değiştirebileceğinizi unutmayın. Bu değer kapsayıcıdır, yani 10 geçerli bir döndürülen rakamdır. Bir düşürmek istiyorsanız, C veya C ++ stil -1 matematiği kullanmak yerine 9 değerini yapmanız yeterlidir. Bu yöntemi kullanarak bir değişken belirlerken bunlar gereksizdir ve aslında rakamlar ekleyerek veya çıkararak beklenmedik sonuçlar üretirler.

Yöntem 3: Tek Bir Rastgele Bit Seçme

Bir değişkeni rastgele sıfır veya bir bit olarak ayarlamanız gerekiyorsa, önceki kodu aşağıdaki gibi değiştirmek isteyebilirsiniz:

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

Bu kod, örneklediği sayılara bağlı olarak ranNum'u 1 veya 0 olarak ayarlayacaktır. / dev / urandom dosya çift veya tekdi. Bu, bir duruma veya diğerine basit bir evet veya hayır denklemi ayarlamanız gerekiyorsa yararlı olabilir.

Bu, üzerinde çalıştığınız şey için yeterince rastgele değilse, o zaman / proc / sys / kernel / random dizinine aşağıdakilerle çağrı yaparak biraz daha rastgele bir sayı elde edebilirsiniz:

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

Yine de, bu, değişkeni yalnızca 1 veya 0 olarak ayarlayacaktır, bu ikili mantık için mükemmeldir, ancak daha uzun bir sayıya ihtiyaç duyabileceğiniz zamanlar için o kadar kullanışlı değildir. Bununla birlikte, ihtiyacınız varsa, bu satırlardan herhangi birini bir bash betiğinde kullanabilirsiniz. Bu ikinci seçenek, birincisinin de başarısız olduğu durumlar için aslında daha iyi olabilir.

Yöntem 4: Rastgele Sayılar Döndürmek için Bash Komut Dosyaları Yazma

Herhangi bir zamanda rastgele bir sayı oluşturmak için kullanışlı bir araca sahip olmak istiyorsanız, bunu yapmak için bir komut satırı komut dosyası oluşturabilirsiniz. Bu, modern Linux komutlarının çoğunun sahip olduğu standart bash dilinden başka bir şey kullanmaz, bu nedenle hemen hemen her modern Linux dağıtımı ve BSD tabanlı işletim sistemlerinin birçoğu bunun üstesinden gelebilir. Komut dosyanızı herhangi bir yerden çalıştırabileceğiniz bir yerde bulundurduğunuzdan emin olmak için daha ileri gitmeden önce cd ~ / .local / bin kullanmak isteyebilirsiniz.

Başlamak için nano random veya vi random yazın, ancak isterseniz komut dosyanız için farklı bir ad da kullanabilirsiniz. İsterseniz başka bir metin düzenleyici de kullanabilirsiniz. Komut satırına yazıldığında 1 veya 0 döndüren bir tane oluşturmak istediğinizi varsayalım. Aşağıdakini girin ve ardından nano kullanıyorsanız kaydetmek için Ctrl + O tuşlarına basın:

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

Metin düzenleyiciden çıkmak için Ctrl + X tuşlarına basın ve komut satırına geri döndüğünüzde, komut dosyanızı kullanılabilir hale getirmek için chmod + x random kullanın. RanNum = $ [RANDOM% 10 + 1], ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom))) veya ranNum = $ (($ RASTGELE% 2)) böylece tam olarak ne tür bir sayıyı geri almak istediğinizi kontrol edebilirsiniz. Düzenli olarak 1 ile 50 arasında bir sayı seçmek istediğinizi varsayalım. Bash komut dosyasının metnini şu şekilde değiştirin:

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

Artık rastgele bir sayı oluşturmak istediğinizde rasgele yazarak komut satırından kolayca çalıştırabilirsiniz.

4 dakika okundu