GNU/Linux >> Belajar Linux >  >> Linux

Linux bash:Penetapan variabel berganda

Terkadang Anda harus melakukan sesuatu yang funky. Katakanlah Anda ingin membaca dari sebuah perintah (contoh tanggal oleh SDGuero misalnya) tetapi Anda ingin menghindari banyak percabangan.

read month day year << DATE_COMMAND
 $(date "+%m %d %Y")
DATE_COMMAND
echo $month $day $year

Anda juga bisa menyalurkan ke perintah baca, tetapi kemudian Anda harus menggunakan variabel di dalam subkulit:

day=n/a; month=n/a; year=n/a
date "+%d %m %Y" | { read day month year ; echo $day $month $year; }
echo $day $month $year

menghasilkan...

13 08 2013
n/a n/a n/a

Hal pertama yang terlintas di benak saya:

read -r a b c <<<$(echo 1 2 3) ; echo "$a|$b|$c"

hasilnya, tidak mengherankan

1|2|3

Saya ingin menetapkan nilai ke array. Jadi, memperluas pendekatan Michael Krelin, saya melakukan:

read a[{1..3}] <<< $(echo 2 4 6); echo "${a[1]}|${a[2]}|${a[3]}"

yang menghasilkan:

2|4|6 

seperti yang diharapkan.


Saya pikir ini mungkin membantu...

Untuk memecah tanggal yang dimasukkan pengguna (mm/dd/yyyy) di skrip saya, saya menyimpan hari, bulan, dan tahun ke dalam array, dan kemudian memasukkan nilai ke dalam variabel terpisah sebagai berikut:

DATE_ARRAY=(`echo $2 | sed -e 's/\// /g'`)
MONTH=(`echo ${DATE_ARRAY[0]}`)
DAY=(`echo ${DATE_ARRAY[1]}`)
YEAR=(`echo ${DATE_ARRAY[2]}`)

Linux
  1. Skrip bash(I)

  2. Kurung Tunggal Dalam Penugasan Variabel Bash?

  3. Transformasi Otomatis Baris Baru Dalam Penugasan Variabel Shell?

  1. Bagaimana cara menguji apakah suatu variabel adalah angka di Bash?

  2. Baca nilai ke dalam variabel shell dari pipa

  3. Menyembunyikan input pengguna di terminal dalam skrip Linux

  1. Periksa apakah ada variabel dalam daftar di Bash

  2. Bagaimana cara menghapus banyak file sekaligus di Bash di Linux?

  3. BASH:temukan file duplikat (kompatibel dengan MAC/LINUX)