Вопросы с меткой [bash]


Как через bash получить первый символ после подстроки?

Ответить

ответов 0

0

rest=${line#*подстрока}; echo ${rest%${rest#?}}

0

grep 'подстрока' /file | grep -o '^.', способов на самом деле достаточно много

Передача значения из MSSQL в Postgres

Ответить

ответов 0

0

так на сайте производителя есть инструкция, как взаимодействовать MS SQL с другими СУБД.

Не удается создать постоянное устройство snapshot с помощью "dmsetup"

Ответить

ответов 0

0

дык, вместо $size ты что-нить адекватное подставляешь? и что это за цель «test»? что именно ты пытаешься сделать?

0

@Fat-Zer, да, до этого присваиваю size=1953125. test - модуль ядра, который загружаю до этого через insmod test.ko (lsmod | grep "dmp" показывает, что он есть в памяти). Пытаюсь сделать, чтобы модуль ядра, который поверх тестового zero устройства создаёт виртуальное блочное устройство.

0

@Fat-Zer, dmsetup create zero1 --table "0 $size zero" до этого тоже выполняется без проблем.

0

тогда по синтаксису должны быть двойные кавычки, а не одинарные иначе $size не подставится... а лучше пиши число прямо в строке... ну и исходники модуля в студию... если дело не только в кавычках, то вероятно ошибка где-то в нём...

0

ну собственно test uknown target type явно говорит, что такой цели нет... даже если модуль загружен, это не значит, что он зарегистрировал dm-цель или зарегистрировал её с таким именем...

0

@Fat-Zer, Исходники модуля добавил. Когда тестировал, ставил двойные кавычки, уже тут описку сделал (с двойным и есть ошибка).

0

у тебя вообще драйвер символьного устройства... при чём здесь вообще device-mapper? что ты вообще пытаешься сделать? см. проблема XY

Создание тестового блочного устройства

bash linux

Ответить

ответов 0

1

ээм, дык, я могу конечно ошибаться, но мне кажется $size это ж просто переменная которая должна определяться где-то ранее. Может та статья в которой Вы это нашли просто не оч хорошая?

0

@nobody, возможно ли использовать переменную из загруженного ранее модуля ядра или нужно определить её где-то в среде bash?

0

Я, если честно, вообще не понимаю о каких "переменных из модуля ядра" идёт речь, но можно обратиться к оф. документации и увидеть там примерно Ваш случай, где есть переменная $TEN_TERABYTES которую просто определяют в bash ДО dmsetup : kernel.org/doc/Documentation/device-mapper/zero.txt

0

Если пример, приведенный вами идет как однострочник, то $size експортируется до этого. Например export size=1234

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

Ответить

ответов 0

0

Тут очень много параметров нужно учитывать: от забитости процессора с ОЗУ до особенностей самих приложений. Может быть на глаз в этом случае и не самая плохая идея, особенно если не важна точность выше 0.1с

0

Можно записывать видео экрана и потом в редакторе отмерить время. Я думаю, такое решение вполне подойдёт, если не требуется сверхвысокая точность.

Запуск python как фонового процесса

Ответить

ответов 0

0

а вы уверены, что скрипт не отработал полностью? Я постоянно пользуюь минимум двумя указанными у вас способами (screen & nohup python script.py &) - проблем не возникало. PS как вы выходите из screen session (по Ctrl+C выходить нельзя)?

0

Точно уверен, там крутится flask, и он работает корректно, потому что я его запускал внутри screen и смотрел, работает ли он — все ок, и он работает, пока я не закрою консоль. Все-таки подозреваю, что это какие-то невидимые силы, связанные с осью, но пока не могу понять, какие

0

Попробуйте написать простой скрипт (без использования Flask), который будет писать текущее время в файл раз в 30 секунд / минуту и запустить его при помощи screen или nohup ... &, чтобы убедиться что все работает правильно и исключить "проблемы" с Flask

0

... & disown - у меня после выхода работает благополучно

0

ну одни процессы умеют отвязываться от управляющего терминала, а другие -- нет.

Сообщения после удаление образа docker

Ответить

ответов 0

0

Видимо результат выполнения docker images --no-trunc --format "{{.ID}} {{.CreatedSince}}" | grep " months" | awk "{ print $1 }" не соответствует вашим ожиданиям. Практика показывает, что grep и awk в одной строчке - проблемы гарантированы. Может вместо таких read-only велосипедов вам docker image prune нужен?

0

К сожалению даже не догадываюсь, как при помощи docker iamge prune можно удалять образы, созданные более месяца назад. Не подскажете как это сделать?(кстати без awk вывод такой же)

0

docker image prune удаляет все неиспользуемые образы

0

Но мне не нужно удалять все неиспользуемые, в этом и проблема

0

Useless use of grep... А зачем это || true?

0

Игнорировать ошибки, если не ошибаюсь. Они игнорироваться то игнорируются, но вывод в консоли всё равно появляется, но не могу понять почему.

Форматированный вывод массива в скрипте bash

bash linux

Ответить

ответов 0

0

Через for и \t попробуй, но возможно есть готовая программа для этого

Is it possible to set expiration date for letter sent by script (bash/perl/...)?

Ответить

ответов 0

0

Perl has a lot of libraries to work with different type of mail boxes. Just choose one and write a (simple) script.

флаги, ключи, параметры в скриптах bash

Ответить

ответов 0

0

Какую проблему вы пытаетесь решить? Приведите пример кода.

0

и, по традиции: How do I parse command line arguments in Bash?

Изменить все строки подходящие под шаблон в файле с помощью команд Linux

Ответить

ответов 0

1

Из того что я понял нужно что то на подобии этогоsed -r '/^some_string/s/Argc\("[^"]+"\)/Argv"\1"/' file

bash обрезает команды

Узнать ответ

ответов 1

0

Мало информации, сделайте скриншот. Или дайте пример команды и опишите, что происходит.

0

есть длинная строка, например python3 sqlmap -u google.com --batch, последние слова, к примеру "--batch" он обрежет и будет считать другой командой, вместо того, чтобы добавить как параметр к первой

0

это не нормальное поведение, с которым кроме тебя скорей всего мало-кто сталкивался... опиши подробней свою среду, bash скорей всего тут не при чём... первое на что я бы кивал — какой-то кривой эмулятор терминала...

0

@АндрейЕвсюков если эта команда копируется с какого то сайта, где может неявно быть вставлен перевод строки, то это нормальное штатное поведение. Что делать? набирать команды ручками и обходить стороной сайты, которые такое практикуют (пусть даже в учебных целях).

0

в parrot security, через virtual box

0

А чё, нормальное такое секьюрити: 20 символов командной строки хватит каждому!

0

Если руками набрать echo очень-длинная-строка-символов-без-пробелов-и-табуляций -- тоже обрезает посредине этой строки?

Вывести в shell строки, не содержащие

Узнать ответ

ответов 2

0

sed -e 's/#.*$//' -e '/^$/d' filename > result

Ошибка в файле ~/.bashrc(синтаксическая ошибка: неожиданный конец файла)

bash

Ответить

ответов 0

1

{http,https,ftp}_proxy — это некорректное имя переменной. можно догадаться, что вы хотели описать три переменных. их надо описать по отдельности.

0

Сама функция размечена так же не правильно, function unsetproxy() { unset {http,https,ftp}_proxy } Если писать ее в строку, то нужно завершать команду ; т.е. будет выглядеть так function unsetproxy() { unset http_proxy https_proxy ftp_proxy; }

Получить exit код при выполнении удаленной команды SSH

bash linux

Ответить

ответов 0

0

А что за ОС? К примеру на centos 6,5 возвращает корректно код.

0

Дистрибутив debian 10.3, на котором выполняется удаленная команда. Запускаю скрипт с ubuntu 18.04

1

а как вы вот дошли до подобной навороченной конструкции? попробовали совсем простую, она не работает, вы попробовали её усложнить, она опять не работает, усложнили ещё, не работает вновь, и вы решили задать здесь вопрос, выложив самый навороченный неработающий вариант. так? попробуйте вернуться на самый первый шаг. что-нибудь вроде: $ ssh -p порт пользователь@сервер exit 222; echo $?. получили "222" в терминале? теперь начинайте усложнять, проверяя каждый следующий шаг. не получили? вот тогда и стоит задавать вопрос: ведь не работает примитивная заведомо рабочая конструкция.

0

Нашел причину, у меня стояла команда set -e. Соответственно при exit она срабатывала, не давая завершить сценарий до конца.

Как передать данные программе через скрипт bash?

Узнать ответ

ответов 1

0

А это оринально использовать выполнение в фоне. Красиво разложенные грабли.

0

Я думаю - это опечатка. На самом деле, TS имел в виду: ./a.out && echo "abcd" && echo "abcd" Это даёт логическое выражение. По правилам оптимизации, сначала вычислится самый левый опреанд и только если он даст "Истина" будет вычисляться второй, ну и так далее... Это известный трюк на shell.

Запуск bash скрипта вместе с приложением

Узнать ответ

ответов 1

0

Подменить приложение скриптом, очевидно.