Kurz gesagt möchte ich diese Art von einer Liste produzieren Expanding Variablen in der Befehlszeile
for file in *
do
woC=$(sed -n -e 's#some-regex#\1#p' "$file")
idL=$(pcregrep -M '/some-regex/\1/p')
gridData="$gridData $file $wowC \"$idL\""
done
Pretend, dass, was in $ WOC ist und $ idL ist nicht wichtig. Wichtig ist, dass $ idL Leerzeichen enthält.
zenity --list \
--title="NCR Service Requests" \
--width=420 --height=500 \
--column="File" --column="Wow Code" --column="ID list" \
$gridData
ich nicht herausfinden kann, wie bash zu zwingen $ griddata zu erweitern (oder $ idL, ich weiß nicht, wo genau ist das Problem) auf eine solche Art und Weise, dass Leerzeichen erhalten werden, noch separate Felder getrennt bleiben .
Wenn 'idL' separate whitespace-haltige Argumente (zu 'zenity') sein müssen, dann müssen Sie ein Array verwenden (und 'pcregrep' nicht verwenden, wenn Sie keine Möglichkeit haben, die Shell zu loopen, um sie zu teilen) der Weg, den du willst). –