Использование разрезания внутри скрипта, чтобы вырезать столбец из определенной строки

Короткий ответ, нет. Проблема в том, что в какой-то момент вашему сценарию потребуется получить пароль из этого центрального хранилища. Как оно это делает? Большинство систем хранения паролей используют мастер-пароль для защиты всего магазина. Вашему сценарию потребуется этот мастер-пароль, чтобы получить пароль приложения. Вы не решили проблему, вы только что ее изменили.

Подход, который я использую к этому, заключается в том, что если вашему сценарию требуется конкретный доступ к приложению, настраивается пользователь, который может делать только то, что нужно вашему сценарию. Затем вы можете сохранить этот пароль в самом скрипте. Если сервер, на котором размещен сценарий, будет скомпрометирован, злоумышленник сможет сделать только то, на что вы дали разрешение сценарию. Кроме того, вы можете запретить злоумышленникам доступ, изменив пароль этого пользователя. Поскольку единственным, что использовал этот пользователь, был рассматриваемый скрипт, все остальное не сломалось.

0
06.10.2018, 01:59
2 ответа

Как насчет -невзирая на предварительную проверку существования файла -чтения строк файла в массив с IFSустановленным в :и вывода второго элемента?

IFS=:
while read -a TARR; do echo ${TARR[1]}; done < viagens.txt
88020
88020

Не забудьте вернуть исходное значение IFS.

0
28.01.2020, 02:42

В обоих сценариях вы используете cutдля файла, имя которого считывается из файла viagens.txt. Вы должны получить ошибку No such file or directoryот обоих скриптов (не забывайте всегда включать любые ошибки в вопрос ).

Вместо:

#!/bin/bash

fich=viagens.txt

if [ ! -f "$fich" ]; then
    echo "Ficheiro nao existe" >&2
    exit 1
fi

cut -d : -f 2 <"$fich" |
while read data; do
    printf 'Data read: %s\n' "$data"
done

cut -d : -f 2вернет второе:-поле с разделителями из ввода в cut.

Или, если вы просто хотите вывести столбец:

#!/bin/bash

fich=viagens.txt

if [ ! -f "$fich" ]; then
    echo "Ficheiro nao existe" >&2
    exit 1
fi

cut -d : -f 2 <"$fich"
1
28.01.2020, 02:42

Теги

Похожие вопросы