Чтобы ответить на ваш вопрос, я копирую и вставляю некоторые из apache2.conf
настроек моего сервера Apache, который обеспечивает шифрование класса A на моей странице с SSL-сертификатами Let's Encrypt:
#Required modules
LoadModule socache_shmcb_module /usr/lib/apache2/modules/mod_socache_shmcb.so
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
#SSL settings
SSLCipherSuite ECDHE:AES256-SHA:AES128-SHA:DES-CBC3-SHA:!RC4
SSLHonorCipherOrder on
SSLRandomSeed connect file:/dev/urandom 32
SSLSessionCache shmcb:${APACHE_RUN_DIR}/ssl(512000)
SSLSessionCacheTimeout 86400
SSLStaplingCache shmcb:${APACHE_RUN_DIR}/ocsp(128000)
SSLUseStapling on
Кроме того, вы можете увидеть этот ответ для усиления SSLCipherSuite
.
Проблема с вашим частично работающим решением заключается в том, что вы каждый раз сохраняете одно значение из суммы одного столбца во весь массив, что удаляет предыдущие значения.
Решение состоит в том, чтобы вставлять значения в массив одно за другим, а не использовать команду mapfile, которая требует все значения в одной строке ввода:
FILE_NAME="$1"
COLUMN_NAME="$2"
alpha=( $(awk -F"|" 'NR==1{for(i=1;i<=NF;i++){if ($i ~ /'$COLUMN_NAME'/){print i;}}}' $FILE_NAME) )
declare -a array=()
n=0
for each in "${alpha[@]}"
do
array[n]="$(awk -F'"?\\|"?' '{T+=$('$each')} END { printf "%.2f\n", T }' $FILE_NAME)"
((n=n+1))
done
echo "${array[@]}"
Выполнение этого дает:
$ bash test.sh demo.txt 'SAL|COL|PER|TAG'
3.58 40.68 6.52 6.88
Чтобы получить вывод demo
в массив, вы можете использовать подстановку команд
declare -a array1=( $(demo) )
и замените вызов demo
в вашем скрипте строкой выше.
PS :Если входной файл имеет фиксированное (и предварительно -определенное )количество столбцов, может быть проще суммировать столбцы непосредственно в элементы массива (и, возможно, быстрее, потому что вы не нужно будет читать$FILENAME
#столбцов + 1 раз ).