Bagaimana cara mengeksekusi satu perintah secara acak dalam daftar perintah yang ditentukan? Bermanfaat untuk secara acak memilih suara startup, wallpaper, atau menjalankan perintah.
Secara umum, jika saya memiliki perintah untuk dieksekusi sebagai berikut maka Bagaimana saya mendapatkan keacakan :?
#!/bin/bash
<command_1>
<command_2>
<command_3>
.
.
.
<command_n>
Maka saya ingin menjalankan secara acak hanya satu perintah dari kemungkinan di atas ketika skrip dijalankan!
Bagaimana cara melakukannya?
command-line
Pandya
sumber
sumber
Jawaban:
Variabel
$RANDOM
(sebenarnya fungsi bash) mengembalikan angka acak dari 0 hingga 32767 inklusif.Anda biasanya ingin membatasi rentangnya dengan membaginya dengan beberapa nomor dan mengambil sisanya, misalnya.
Dalam contoh sederhana ini akan sangat sedikit bias untuk setiap pembagi yang tidak terbagi rata menjadi 32768 (misalnya, apa pun yang bukan kekuatan dua), tetapi dalam skenario Anda, saya tidak berpikir Anda akan bermasalah sedikit bias.
Untuk memilih file acak, beri nama file Anda sesuatu seperti:
Dan kemudian Anda dapat memilih yang acak dengan
sumber
RANDOM
, saya diterima!Menurut jawaban @neon_overload (menggunakan
RANDOM
),saya dapat memasukkan
RANDOM
contoh skrip sebagai berikut (untuk 4 perintah):sumber
Jika Anda ingin keacakan melalui situs eksternal daripada yang dihasilkan oleh komputer Anda, Anda dapat menggunakan skrip ini:
Jalankan sebagai rand (MIN) (MAX) (dengan asumsi Anda menyimpan sebagai / usr / bin / rand)
Anda mungkin harus menginstal curl terlebih dahulu (sudo apt-get install curl) jika belum diinstal.
sumber
Anda dapat menggunakan
shuf
perintah dari GNU coreutils .Contoh:
Sekarang, Untuk mendapatkan satu entri acak Anda dapat menggunakan
-n 1
output mana baris pertama.Contoh untuk mencetak nomor acak dari 1-100:
Jika Anda sudah
file
memiliki konten berikut:Anda juga dapat melakukan sesuatu seperti:
sumber