Tulis program yang mem-parsing output uptime
dan menghasilkan progress bar yang secara anatomis sugestif (seperti yang ditunjukkan) dengan panjang yang sama dengan uptime saat ini dalam beberapa hari:
$ uptime
23:01 up 34 days, 7:30, 5 users, load averages: 0.23 0.27 0.24
$ uptime|<command>
8==================================D
(34 hari = 34 tanda sama dengan)
Jawaban terpendek menang.
Jawaban:
Ruby, 39
Tidak diperlukan input (dengan cara keluar):
Atau dari stdin (40 karakter):
sumber
gets=~/up (\d*)/;puts "8#{?=*$1.to_i}D"
'gets=~/up (\d*)/;puts "8#{"="*$1.to_i}D"'.length=="gets=~/up (\d*)/;puts '8'+'='*$1.to_i+'D'".length
#trueBash, 71 karakter
Saya tidak terlalu banyak mengekspos
gensaya di internet, jadi saya menggambar pagar sebagai gantinya. Ini jumlah karakter yang sama. Pikirkan mengatur ulang dip
antara panggilan.Bash murni, 71 karakter termasuk
uptime
.Well, well, well ... punyaku lebih besar dari milikmu.
sumber
Perl -
2624 karakterBerlari seperti itu:
sunting : Tidak mengutip final 'D' - terima kasih JB
sumber
Haskell, 88 karakter
Seperti yang sering terjadi, Haskell tidak menawarkan golfabilitas paling ekstrim dari beberapa bahasa lain, tetapi memungkinkan ekspresi elegan dari struktur matematika yang mendasari masalah. Membangun kerja mani mereka di bidang ini, saya bertujuan untuk memperkenalkan implementasi Haskell dari operator Pendekatan Holkins-Krahulik . Secara singkat, operator mengabaikan input dan mengembalikan fungsi pencetakan lingga yang diparameterisasi berdasarkan panjang poros.
sumber
Perl, 17 karakter
Sekarang dengan mengatakan:
Hasil
dulu:
Hasil
(Aku tidak bisa "mengatakan", dengan sedih)
sumber
57 karakter
sumber
35 karakter
begitu,
Edit : tadinya
Sunting 2 : Komentar JB (gunakan
\
sebagai ganti''
)sumber
Windows PowerShell, 28
Setidaknya
menghasilkan output yang benar, sehingga harus mampu menangani
uptime
output. Saya tidak dapat menguji, karena GNUWin32 menyertakan pecahanuptime
yang mencoba membaca dari file yang tidak ada (Catatan untuk orang yang mem-porting alat Unix: Jangan mencoba untuk berasumsi bahwa Windows adalah Unix dan mematuhi prinsip atau konvensi yang sama; ada tidak ada file yang berisi waktu boot di Windows).sumber
Gangguan Umum, 84 karakter
Ini mengambil string uptime sebagai input. Sepertinya harus ada solusi yang lebih pendek memetakan # 'tulis di daftar, tetapi jika demikian saya tidak bisa datang dengan itu.
sumber
GolfScript (24 karakter)
Haskell (73 karakter)
C (131 karakter)
sumber
' '/3=~8\'='*'D'
PHP, 62 karakter
Tidak diperlukan input, itu keluar.
sumber
Python (42)
Catatan: Python 3 digunakan untuk mengurangi jumlah karakter total.
sumber
Python, 65 Bytes
uji:
sumber
PHP, 61
sumber
Gangguan Umum, 57 karakter
(tidak termasuk implementasi / shebang khusus OS)
Berdasarkan upaya untuk memuaskan jawaban Dr. Pain harapan cara yang lebih singkat untuk menulis karakter yang berulang. Yang ini dapat digunakan dalam pipa seperti yang ditunjukkan dalam pertanyaan.
(Format string menentukan untuk membenarkan kanan string kosong (antara
~<
dan~>
), dalam bidang lebar yang ditentukan oleh argumen, diisi menggunakan=
karakter.)sumber
K, 35
.
sumber
Bash 67 karakter
doa surat penugasan:
Jauh lebih pendek
hanya 54 karakter:
dengan variasi ini:
doa, tidak 100% sesuai dengan aturan:
output di kedua kali:
Trik non-sehari-hari:
berbunyi 06: 29: 53 = t, naik = u, 16 = d istirahat ... = w
tanpa w, semuanya sampai akhir akan dimasukkan ke dalam $ d.
expand biasanya digunakan untuk menerjemahkan tab ke dalam jumlah yang kosong dan mengambil parameter jika Anda tidak suka 8.
Mengambil parameter ke-3 dengan $ 3
echo -e '\t'|expand -t $3|sed 's/ /=/g'
bahkan lebih pendek, tetapi membutuhkan doa, tidak sesuai dengan kata-kata aturan.sumber
bash / zenity 38 versi pendek, 68 versi lebih panjang
Versi singkat berakhir setelah $ d, semakin lama memperhitungkan bahwa kita tahu nilai maksimum dan ingin memiliki teks bermanfaat:
sumber
Gema , 24 karakter
Contoh dijalankan:
sumber
AutoHotkey , 39 byte
Tidak ada input Hasilnya dikirim ke jendela aktif.
Built-in
A_TickCount
adalah jumlah milidetik sejak komputer di-boot ulang.sumber