GNU/Linux >> Linux Esercitazione >  >> Linux

Linux bash:assegnazione di più variabili

A volte devi fare qualcosa di funky. Diciamo che vuoi leggere da un comando (l'esempio di data di SDGuero per esempio) ma vuoi evitare più fork.

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

Potresti anche reindirizzare il comando read, ma poi dovresti usare le variabili all'interno di una subshell:

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

risulta in...

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

La prima cosa che mi viene in mente:

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

l'output è, ovviamente

1|2|3

Volevo assegnare i valori a un array. Quindi, estendendo l'approccio di Michael Krelin, ho fatto:

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

che produce:

2|4|6 

come previsto.


Penso che questo potrebbe aiutare...

Per suddividere le date inserite dall'utente (mm/gg/aaaa) nei miei script, memorizzo il giorno, il mese e l'anno in un array, quindi metto i valori in variabili separate come segue:

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. Script Bash(I)

  2. Parentesi singola nell'assegnazione delle variabili Bash?

  3. Legge i valori in una variabile di shell da una pipe

  4. Nascondere l'input dell'utente sul terminale nello script Linux

  5. Controlla se esiste una variabile in un elenco in Bash

Variabile di esportazione Bash

16 Esempi di comandi Echo in Linux

Bash ha letto Comando

Comando Bash Echo spiegato con esempi in Linux

Come utilizzare il comando echo negli script Bash in Linux

BASH:trova file duplicati (compatibile con MAC/LINUX)