LINUX.ORG.RU

Сообщения vachicul

 

Переменные в многоуровневых списках

Форум — General

Есть список из каталогов, при переходе в дочерний уровень списка, должна быть доступна переменная на родительский уровень списка. Независимо от глубины перехода в дочерние списки, должен сохранятся доступ к смежным родительским спискам по мере абстракции от дочерних уровней.

Уже сломал мозг над этой задачей. Получается только конструкция из вложенных друг в друга циклов но она имеет ограничения по количеству уровней и ужасный внешний вид + большой размер.

Далее посмотрел в сторону функций, которые должны назначать переменные по мере прохождения уровней, но тут моих знаний совсем не хватает. Есть идеи?

 , ,

vachicul
()

Как правильно отфильтровать список с несколькими уровнями?

Форум — General

имеется:

$ prog.sh
/flevel/unit
/flevel/unit2
/flevel/unit3
/flevel/slevel/unit
/flevel/slevel/unit2
/flevel/slevel/tlevel/unit
/flevel/slevel/tlevel/unit2
/flevel/slevel/tlevel/unit3
/flevel/slevel/tlevel2/unit
/flevel/slevel/tlevel2/unit2
/flevel/slevel/tlevel/somelevel/unit

Нужно отфильтровать список что бы получить только уникальные пути

$ prog.sh | filter.sh
/flevel/
/flevel/slevel/
/flevel/slevel/tlevel/ 
/flevel/slevel/tlevel2/
/flevel/slevel/tlevel/somelevel/

 , , ,

vachicul
()

Как указать пробел в проверке условий?

Форум — General
read -N1 -p "
1)- weed
2)- eat
3)- sleep
4)- fck
space)- back" var

if [ $var = " " ]; then
echo "Trying later!"
fi 

Хочу что бы при вводе пробела выводилось «Trying later!», но в проверке условия пробел не воспринимается, либо его не внимает переменная. Что можно придумать?

 , ,

vachicul
()

как сделать что бы echo не убирал переносы строк?

Форум — General
$ var=$(ls -lh)
$ echo $var
this is one string
$

Часто использую переменные для вывода и хотелось бы что бы этот вывод не менял свою струтуру. Может как-то без echo можно это сделать? Мне нужно вот так:

$ echo $var | sed -n 3p
one

awk прошу не предлагать, потому что строки могут быть с пробелами и другими разделителями, так же awk не может адекватно воспринимать другие переменные внутри себя.

 , ,

vachicul
()

xbindkeys - Как заставить читать конфиг НЕ из файла

Форум — General

Есть конфиг для xbindkeys который нужно прочитать из stdin. Записывать в файл нельзя. Возможно это сделать?

 , ,

vachicul
()

Как передать переменную для использования в другой программе?

Форум — General

В текущей сессии назначена переменная. Я запускаю скрипт который использует эту переменную успешно, но внутри этого скрипта есть другой скрипт который эту переменную не видит.

$ pass=example
$ alias
alias exe='prog=$(gpg --batch --yes --passphrase $pass --decrypt ~/secret.gpg); bash -c "$prog"'

Содержимое secret.gpg похоже на

prog=$(gpg --batch --yes --passphrase $pass --decrypt ~/secret2.gpg); bash -c "$prog"

и использует тот же пароль. exe выполняется корректно но внутри $prog пароль уже не видит. Как передать $pass для использования внутри $prog? З.Ы. записывать в файл pass нельзя

 ,

vachicul
()

Переопределение alias'oв в меню

Форум — General

Пытаюсь сделать меню и не совсем понимаю как использовать правильно алиасы. Должен оставаться доступ к вводу! 1 2 должны отражать следующие уровни меню и менять значение алиасов 1 и 2 на другие значения. В голову приходит такой костыль:

echo "
1 first
2 second
3 main menu"
alias 1="echo \"
1 child_first
2 child_second
3 main menu\"
alias 1=\"/bin/child_first\"
alias 2=\"/bin/child_second\"
alias 3=\"???\""

 ,

vachicul
()

как отправить переменную в read без ввода enter?

Форум — General
read -p "your choice
1 first
2 second
3 quit"

Я хочу нажать 1 2 или 3 что бы переменная choice принимала это значение при этом не нажимать Enter. Как это сделать?

 , , ,

vachicul
()

Создать скрипт который вводит пароль в keepassxc-cli

Форум — Job

keepassxc-cli show -a username rest.db entryname Эта команда выводит содержимое username и требует ввод пароля.

Нужно передать ввод из переменной read -s pass Программа будет находится в цикле и множество раз обращаться к базе за логин/паролями. Файл-ключи проблему не решают, пароль должен вводится из переменной.

Условия: Понятный синтаксис, короткий код, тривиальные консольные инструменты (Python рассмотрю если это будет аргументировано) Скрипт может быть размещён внутри других шелл-скриптов.

Обсуждение было здесь: keepassxc-cli Как передать ввод пароля?

Вознаграждение: 50$

 , , ,

vachicul
()

sed. вырезание строк со слэшем

Форум — General
string=$(cat var)
sed -i "/$string/d" file

выдаёт ошибку

sed: -e expression #1, char 123: extra characters after command
Номер char соответствует символу после слэша в строке. Слэш может быть в разных местах. Как правильно скормить переменную в sed?

 , ,

vachicul
()

keepassxc-cli Как передать ввод пароля?

Форум — General

По аналогии с

gpg --passphrase xxx -d file.gpg
Хотелось бы получать данные из базы таким же способом:
keepassxc-cli show -a username rest.db entryname
но пароль для этой команды передавать из переменной read -s Программа будет множество раз обращаться к базе за данными, поэтому пароль должен храниться в переменной. В документации подобной функции не нашёл(--passphrase). Как это можно реализовать?

 , , ,

vachicul
()

tmux size pane

Форум — General

В запущенной сесси команда

tmux splitw -h -p 90
работает корректно

Как только это запускается скриптом, размер pane не соответствует дейтсвительности. То есть pane 0 занимает почти половину, если окно терминала сделать маленький, то pane 0 становится слишком мелким но никак не 1/10

tmux resize-pane
тоже не срабатывает в скрипте. Что я не так делаю? разные способы через selectp тоже пробовал, даже send-keys «tmux resize-pane» C-m всё равно не даёт нужный результат. Возможно нужно изначально указать размер будущего окна? Почему он не воспринимает 90 как 90% от размера окна? Пробовал в разных системах, результат одинаковый.

Скрипт такой

tmux start-server
tmux new-session -d -s work -n work
tmux splitw -h -p 90
tmux attach

 , ,

vachicul
()

Пароль в переменной, а так же цикл запроса пароля

Форум — General

Не принимает пароль. Что я не так делаю?

read -p "Password: " passwd; gpg -o file --decrypt --batch --passphrase '$passwd' file.gpg
gpg: AES.CFB encrypted data
gpg: encrypted with 1 passphrase
gpg: decryption failed: Bad session key

Так же мне не понятно как правильно сделать цикл который будет переспрашивать пароль в случае неудачи? И что бы завершал цикл если расшифровка удалась.

 , ,

vachicul
()

Как иницииорвать запуск при появлении вывода

Форум — General

При выполнении программы в вывод не поступает никаких данных до достижения определённых условий. Как инициировать запуск второй программы при появлении какого-либо вывода от первой? Вывод первой программы всегда разный. Вторая программа должна запуститься один раз, либо с фиксированной зедержкой, так как первая программа может выводить слишком много. Возможно поможет xargs, но я не совсем понимаю как он работает, возможно должно получится что-то похожее на это: ./script.sh | xargs -?? ./detect.sh

 

vachicul
()

Генерация список в цикле for

Форум — General

Есть данные в таком виде:

cat список
aaaaa 11111
bbbbb 22222
ccccc 33333

cat шаблон
<<<<<<<<буквы>>>>>>>>>
----------------------
<<<<<<<<цифры>>>>>>>>>
----------------------

Есть такой скрипт

строки=$(cat список)
for arg in $строки
do
cat шаблон | sed s/буквы/$arg/ >> цель
done

arg прнимает значения aaaaa потом 11111 потом bbbbb, хотя я рассчитывал что он будет воспринимать целую строку. Как его заставить заменять буквы буквами, а цифры цифрами?

Результат я хочу получить такой:

cat цель
<<<<<<<<aaaaa>>>>>>>>>
----------------------
<<<<<<<<11111>>>>>>>>>
----------------------
<<<<<<<<bbbbb>>>>>>>>>
----------------------
<<<<<<<<22222>>>>>>>>>
----------------------

 , ,

vachicul
()

RSS подписка на новые темы