BASH: двойные кавычки вокруг части вывода массива? - PullRequest
0 голосов
/ 02 октября 2018

Я долго пытался понять это, поэтому я надеюсь, что кто-то сможет пролить свет на это.

#!/bin/bash

HOSTNAME="`hostname`"
JSONFILE="${HOSTNAME}.json"

#####################
#     FUNCTIONS     #
#####################
function getfilesystems() {
  count=0;
  FILESYSTEMS=()
  SAVEIFS=$IFS
  IFS=$(echo -en "\n\b")
  for fs in `df -P | awk 'NR!=1'`; do
    FILESYSTEMS+=("fs$count=${fs}")
    (( count++ ))
  done
  echo "${FILESYSTEMS[@]}"
  IFS=$SAVEIFS
}

SAVEIFS=$IFS
IFS=$(echo -en "\n\b")

jo -p serverdata="$(jo hostname=${HOSTNAME} reportdata="$(date)" storage="$(jo -p "$(getfilesystems)")")"

IFS=$SAVEIFS

Я пытаюсь сосредоточиться на этой части FILESYSTEMS+=("fs$count=${fs}")

Прямо сейчас вывод такой:

'fs0=/dev/mapper/vg_rpidalappnfs-LogVol00                                           10190136      5486908      4178940      57% /' 'fs1=tmpfs                                                                           1962684            4      1962680       1% /dev/shm' 'fs2=/dev/sda1                                                                        194241       104145        79856      57% /boot'

Это почти то, что я хочу.Что мне нужно, это (видите разницу в кавычках?):

fs0="/dev/mapper/vg_rpidalappnfs-LogVol00                                           10190136      5486908      4178940      57% /" fs1="tmpfs                                                                           1962684            4      1962680       1% /dev/shm" fs2="/dev/sda1                                                                        194241       104145        79856      57% /boot"

Я буквально пытался заставить это работать в течение часа, и я просто не могу пройти эту часть,

Помощь приветствуется.

1 Ответ

0 голосов
/ 02 октября 2018

Избегайте двойных кавычек с помощью обратной косой черты:

FILESYSTEMS+=("fs$count=\"${fs}")

Но я боюсь, что в конце вам не понадобятся двойные кавычки в выводе, но я не знаком с jo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...