Проблема вызвана двойными кавычками, которые вы поставили вокруг подстановки команды $()
. Это превращает весь вывод в одну многострочную строку.
Попробуйте:
declare -a list123
list123=( $(psql -t -h 10.100.0.1 -U prasad statistics -c "select command from jobhandler.config_info where conf_name like '%stager%'") )
У меня нет вашей таблицы, но я тестировал с простой таблицей id,name,dob на моей системе:
$ list123=($(psql -t -c 'select dob from newtable'))
$ set | grep list123
list123=([0]="1967-03-07" [1]="1964-08-07" [2]="1992-10-19" [3]="1964-12-18" [4]="1945-12-26")
Для будущих странников вроде меня. Я написал скрипт, сочетающий ответ @Faheem Mitha и ответ здесь
#!/bin/sh
# USAGE:./concat-pdf.sh *.pdf output-file.pdf
ALL_FILES=""
BLANK_FILE="/tmp/blank.pdf"
for OUTPUT_FILE; do true; done
if test -f "$OUTPUT_FILE"; then
echo "$OUTPUT_FILE already exists"
exit 1
fi
echo "" | ps2pdf -sPAPERSIZE=a4 - $BLANK_FILE
for PDF_FILE; do
if [ "$PDF_FILE" != "$OUTPUT_FILE" ]; then
pages=$(strings < "$PDF_FILE" | sed -n 's|.*Count -\{0,1\}\([0-9]\{1,\}\).*|\1|p' | sort -rn | head -n 1)
ALL_FILES="$ALL_FILES \"$PDF_FILE\""
[ $((pages%2)) -ne 0 ] && ALL_FILES="$ALL_FILES $BLANK_FILE"
fi
done
echo "pdftk $ALL_FILES cat output \"$OUTPUT_FILE\""
pdftk $ALL_FILES cat output "$OUTPUT_FILE"
rm -f $BLANK_FILE