Tag: shell script

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

Это мой код: while IFS=',' read abc; do read input echo $input done 3<&0 < input.csv > output.txt Я позаботился о перенаправлении ввода, перенаправляя его по конвейеру. Но все же, когда я запускаю вышеуказанный код, управление не прекращается для ввода. Зачем?

Как я могу пропустить пустые файлы с sed?

Я использую sed следующим образом: sed -e 's/ *| */|/g' ${array_export_files[$loopcount]}>>$TEMPDIR/"export_file"_${testid}_${loopcount}_$$ в цикле while, но проблемы возникают, когда файл пуст или ничего не содержит. Я не хочу, чтобы sed запускался, если файл существует, но пуст; Я не хочу, чтобы sed запускался, если файл не существует. Полный фрагмент кода while [ $loopcount -le $loopmax ] do […]

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

Это более сложная версия предыдущего вопроса ( как передать аргументы perl при попытке изменить строку? ) Я сделал. На этот раз я пытаюсь пройти путь, но все же кажется, что скрипт perl читается / ошибочно. Предположим, что строка 4 в файле .txt выглядит так: path_root_abs = "/path/to/thefile" Чтобы получить рабочий каталог и заменить его в […]

Unix Shell: назначение массива не работает

Я новичок в Unix-оболочке. Я изучаю массив, следуя коду source_array_list[0]="a" source_array_list[1]="a" source_array_list[2]="a" source_array_list[3]="a" source_array_list[4]="a" source_array_list[5]="a" source_array_list[6]="a" source_array_list[7]="a" a=0 while [$a -le 6] do echo "just before loop" target_array[a]=source_array_list[$a] echo "${source_array_list[$a]}" a=`expr $a + 1` done Теперь это не работает и дает ошибку [0: not found. Пожалуйста, помогите мне решить эту проблему.

Найти родителя процесса

Я пытаюсь написать сценарий, чтобы помочь с компьютерной безопасностью. Я пытаюсь найти открытые порты, найти PID и найти то, что называется. У меня есть работа, где мой вывод выглядит примерно так: IPV4 – 1234 – 2566/nc Running from: `/bin/nc.openbsd` Command run: `nc -l 1234` Где мне удалось получить эти значения из netstat , /proc/$PID/exe и […]

Скрипт с несколькими арифметическими условиями не работает

Я испытываю проблемы со сценарием, преобразующим числа в байты. Если число достаточно велико, чтобы достигнуть гигабайт или терабайт, скрипт работает как следует. Если число преобразуется в килобайты, оно запускает скрипт, показывает число в килобайтах и ​​одновременно отправляет сообщение об ошибке. Если я нахожусь в мегабайте, он отправляет сообщение об ошибке: строка n ((: x> 1048576: […]

Сортировка файлов в соответствии с их расширениями

Я создал сценарий, который будет сортировать файлы в соответствии с их расширением и поместить их в правильную папку. Например, поместите abc.jpg в каталог jpg . #!/bin/bash #this script sorts files according to their extensions oldIFS=$IFS IFS=$'\n' (find . -type f) > /tmp/temp for var in `cat /tmp/temp` do name=`basename "$var"` ext=`echo $name | cut -d'.' […]

Как подписать скрипт Bash в качестве клиента MQTT

Из моего понимания: Клиент может быть любым устройством, если на нем работает библиотека MQTT, от микроконтроллера до сервера, но он должен быть подключен к брокеру MQTT по любой сети Брокер несет ответственность за получение всех сообщений и отправку этих сообщений клиентам, которые подписаны. Поэтому на данный момент у меня есть сценарий bash, который отфильтровывает определенные […]

Как объединить два файла в одной строке?

У меня два файла. file1: Dave 734.838.9800 Bob 313.123.4567 Carol 248.344.5576 Mary 313.449.1390 Ted 248.496.2204 Alice 616.556.4458 file2: Bob Tuesday Carol Monday Ted Sunday Alice Wednesday Dave Thursday Mary Saturday Я хочу объединить эти два в файл3. file3 должен выглядеть так: Name On-Call Phone Carol MONDAY 248.344.5576 Bob TUESDAY 313.123.4567 Alice WEDNESDAY 616.556.4458 Dave THURSDAY […]

используйте команду «читать» для передачи строк в качестве позиционных параметров в сценарий оболочки

Следующий файл работает, но ничего не делает, но это не ошибка …. while read dates; do ./avg_hrly_all_final.sh ${dates}; done < ./dates_all.csv У меня есть список дат в «date_all.csv», которые имеют следующий вид: 2005 01 2005 02 2005 03 И сценарий, который я называю «avg_hrly_all_final.sh», работает, передавая ему 2 позиционных параметра, например: ./avg_hrly_all_final.sh 2005 01 СЛЕДОВАТЬ […]

Linux и Unix - лучшая ОС в мире.