Задать вопрос
Ответы пользователя по тегу bash
  • Можно ли написать скрипт на проверку динамиков у устройства?

    valerium
    @valerium
    Изобретая велосипед
    А после подачи любого другого короткого звука шипение не пропадает? Ведь «тест динамиков» по сути просто воспроизводит звуковой фрагмент, никакой другой магии он не делает.

    Если любой короткий звук помогает, напишите скрипт, который будет мониторить подключение монитора и воспроизводить какой-нибудь короткий писк.
    Ответ написан
    2 комментария
  • Как правильно использовать FIFO в линукс?

    valerium
    @valerium
    Изобретая велосипед
    Именованный канал (FIFO) — это такой виртуальный файл. Как и с любым файлом, в него можно писать, и из него можно читать. Особенность в том, что один процесс может или только писать, или только читать.

    С точки зрения программиста, достаточно просто открыть этот файл на запись и записывать туда то, что нужно. И всё.

    Из шелла писать в файл проще всего перенаправлением вывода. То есть, чтобы послать команду q нужно сделать
    echo q > /path/to/fifo

    В пайтоне можно обойтись встроенной функцией open(), нужно только знать путь к каналу, который открывает плеер.

    UPD. Но скорее всего, Вам нужны обычные неименованные каналы pipe. Для этого есть модуль subprocess, который может запустить указанное приложение и передавать ему команды на стандартный ввод. В документации к subprocess этот хорошо описано.
    Ответ написан
  • Как удалить дубли во всех файлах в папке?

    valerium
    @valerium
    Изобретая велосипед
    Можно просто пройтись циклом по всем файлам в текущей папке.
    for i in *.txt; do sort $i | uniq > $i-sorted; done
    Ответ написан
    5 комментариев
  • Как найти и показать содержимое файла с наибольшим значением именем?

    valerium
    @valerium
    Изобретая велосипед
    ls по умолчанию и так сортирует файлы, то есть sort не нужен. Сделайте так:
    cat `ls -1 | tail -1`
    Ответ написан
    Комментировать
  • Как загрузить все файлы из папки в Mysql?

    valerium
    @valerium
    Изобретая велосипед
    Или в цикле :-)
    for i in `ls -1`; do mysql -u admin -pw12345678 databasename < $i; done

    Хотя вариант от Rsa97 кошернее, так как вводить пароль напрямую в консоль - не секурно, а вводить отдельно на каждый файл - геморрно. Главное, чтобы порядок ввода данных из файлов был безразличен, иначе однострочником не обойтись.

    В Вашем же варианте две ошибки. Во-первых, Вы пытаетесь передать программе mysql на стандартный ввод (через пайп | ) список файлов, хотя она туда принимает только непосредственно SQL код. То есть, Вам нужна команда cat, а не ls. Во-вторых, с помощью < Вы указываете оболочке на необходимость передать на тот же стандартный ввод содержимое некоторого файла, но сам файл не указываете, вот он и удивляется.
    Ответ написан
    Комментировать
  • Как скопировать строку из файла на удалённом сервере?

    valerium
    @valerium
    Изобретая велосипед
    ssh remote.server.ru "grep needle /path/to/file"
    Как-то так. Выведет то, что найдёт grep. Соответственно, grep можно заменить на tail, head, sed или любую другую команду. Если манипуляция какая-то шибко сложная (потребуется много разных кавычек), то можно использовать heredoc, передать скрипт на стандартный ввод ssh.

    ssh remote.server.ru <<CODE
    awk -F';' '/pattern/ {print $3}' /path/to/file
    CODE


    Но это при условии, что скрипт будет запускаться ручками, то есть Вы сами введёте пароль от учётки на удалённом сервере или пароль от ключа. Если нужно делать это автоматически, то лучше на стороне удалённого сервера написать скрипт, который эту строку будет по какому-нибудь HTTP отдавать.
    Ответ написан
    3 комментария