Pentru a exporta mai mult de o regulă, dar numai regulile al căror nume este dat într-o listă, aș folosi următorul cod.
#!/usr/bin/bash
# Lista numelor de articole de exportat
articole=(articol1 articol2 articol3)
pentru articol din „${items[@]}”; do
regulile drush-export „$item” > „${item}.txt”
Terminat
Acest lucru este mai simplu decât obținerea listei de reguli existente de la drush reguli-listă --pipe
, eliminați elementele din acea listă care nu se potrivesc cu numele regulilor pe care doriți să le exportați, apoi rulați drush reguli-export
pe elementele din stânga.
Dacă ați avea o listă de nume, care ar putea fi fie nume de componente, fie nume de reguli și ați dori să exportați numai reguli, codul ar fi similar cu următorul.
#!/usr/bin/bash
# Lista articolelor de exportat, care ar putea include numele componentelor
nume=(nume1 nume2 nume3)
# Obțineți doar o listă de nume de reguli și convertiți-o într-o matrice.
reguli=( $(lista de reguli drush --pipe --type=regulă) )
# Creați o matrice cu elemente care se află în ambele matrice.
exporturi=( $(comm -12 <(printf '%s\n' "${names[@]}" | LC_ALL=C sort) <(printf '%s\n' "${rules[@]}" | LC_ALL=C sort)) )
# Exportați articolele ale căror nume sunt în matricea de exporturi, care conține doar nume de reguli.
pentru export în „${exports[@]}”; do
drush rules-export „$export” > „${export}.txt”
Terminat