Пишу небольшой скрипт, для которого надо сохранять две выбранные пользователем при предыдущих запусках скрипта опции, а при следующих запусках их восстанавливать.
Решил воспользоваться самым простым методом. Создаем рядом со скриптом 2 файла, и туда сохраняем значения опций:
echo "$OPT1" > ./option1
echo "$OPT2" > ./option2
Некрасиво, но просто.
При запуске скрипта, читаем опции обратно:
OPT1=`cat ./option1`
OPT2=`cat ./option2`
На всякий случай лучше обрезать лишние пробелы или «пустые» символы типа TAB или переводов строки. Во всяком случае, так рекомендуют во всех руководствах по программированию, и обычно, в каждом современном языке, в некотором виде есть функция trim()
, которая обрезает начальные и конечные пробелы.
Оказывается, что в bash можно обрезать не только начальные пробелы, но даже начальные и конечные пустые строки. Причем решается это одной командой.
Возьмем, например, такой тестовый файл: На PasteBin
Если мы просто выведем его на консоль с помощью команды cat "trimtext.txt"
, то получится следующее:
smallwolfie@wolfschanze:~/myfiles/test/trim# ./testtrim Trim() smallwolfie@wolfschanze:~/myfiles/test/trim#
т.е. со всеми пробелами и пустыми строками.
Самая простая реализация trim()
в shell/bash пропустить вывод команды через xargs
без параметров. xargs
, которая требует после себя команды, без указания команды все равно что echo
без параметров. А echo
без параметров все пустое обрезает.
#!/bin/bash
cat "trimtext.txt"|xargs
Вывод:
./testtrim
Trim()