Tag: shell script

трубопровод с недетерминированным выходом

Я произошел по команде, которая иногда работает, а иногда и нет, даже если она выполняется несколько раз подряд в оболочке bash (я не тестировал поведение в других оболочках). Проблема была локализована для чтения переменной в блоке BEGIN оператора awk в конце линии трубопровода. Во время некоторых исполнений переменная корректно считывается в блоке BEGIN а во […]

Как использовать аргументы, такие как $ 1 $ 2 … в цикле for?

У меня есть этот скрипт, который предназначен для загрузки произносимых слов, которые вы даете ему в качестве аргумента: #!/bin/bash m=$# for ((i=1;i<=m;i++));do echo $i #wget https://ssl.gstatic.com/dictionary/static/sounds/de/0/"$i".mp3 done если я запустил его с помощью этой команды ./a.sh personality brave selfish он должен печатать на стандартном personality brave selfish но вместо этого он печатает 1 2 3 […]

Как проверить, существует ли несколько файлов?

У меня есть сценарий оболочки, который ищет файл, /tmp/bbsnode1 , и если существование этого файла истинно, оно удаляет его. То, что я хотел бы сделать, это /tmp/bbsnode2 нескольких файлов ( /tmp/bbsnode2 , /tmp/bbsnode3 и /tmp/bbsnode4 ), удалить все из них. Но удалите их только в том случае, если они все существуют. Вот что я до […]

mv: не обнаружено, когда выполняется из сценария, который изменяет переменную PATH

У меня это в моем сценарии. Но возвращается ошибка. Если я выполняю команду в консоли, отлично работает ./script.sh[16]: mv: not found [No such file or directory] Я хочу переместить некоторые файлы, которые начинаются с T353 из одной папки в другую. REMOTE_PATH is / tmp /, а PATH – мой рабочий каталог cd $REMOTE_PATH mv T353* […]

Подводя массив внутри awk?

У меня есть следующий код: sum1= sum2= declare -aa echo $temp | awk '{split($0,a,","); name=a[1] ; for(i=2;i<=4;i++) sum1+=a[i] ; for(i=5;i<=7;i++) sum2+=a[i] }' Этот код не работает. Здесь temp представляет собой строку типа: abc,1,2,3,4,5,6 Я новичок и нуждаюсь в некоторых предложениях. На самом деле я разбираю данные из файла. Входной файл выглядит так: abc,1,2,3,4,5,6 de,3,5,7,8,4,2 xyz,6,5,3,7,8,2 […]

Awk – выводит вторую строку из нескольких файлов .dat в один файл

Я просматривал ранее заданные вопросы и не могу найти ответ на то, что я пытаюсь сделать. Заметьте, я новичок в Linux. У меня есть несколько файлов, вроде: (в действительности у меня 80) file1.dat 2 5 6 9 7 1 file2.dat 3 7 8 4 1 3 Я хочу получить файл, содержащий все остальные строки. т.е. […]

Перебирать все в директории?

Хорошо, прежде чем это немедленно будет закрыто как дубликат, позвольте мне объяснить. Я попытался использовать многие методы, такие как: for d in /Applications ; do echo "$d" done но это возвращает /Приложения вместо содержимого / Приложения. Я также пробовал: #!/bin/bash FILES=/Applications for file in $FILES do echo $file done Это в основном то же самое. […]

Почему я получаю «строка 1: $ ': \ r': command not found"?

Я использовал Cygwin на своем ноутбуке (DOS). У меня есть набор сценариев от моих коллег и мой собственный. Я не ИТ-специалист, не знающий в Unx. Я следую синтаксису моих коллег и умею управлять несколькими простыми вещами. Сценарии хорошо работали на моем старом ноутбуке. Я просто сменил ноутбук, установил Cygwin. Когда я запускаю свои скрипты, они […]

Ctrl-C игнорируется pppd при установке сценария оболочки

Я пытаюсь подключиться к сети GPRS через модем, подключенный к последовательному порту. Когда я вызываю /usr/sbin/pppd call <peer_name> из командной строки, он правильно принимает и обрабатывает Ctrl + C с клавиатуры. Но когда я помещаю ту же самую команду в пустой сценарий оболочки (с или без shebang #! Вверху), chmod +x и запускаем его из […]

Как объединить три файла (и пропустить первую строку одного файла) отправить его в качестве вкладов в мою программу?

Есть файл A, B, C. Я хочу объединить файлы A, B и C (пропустить первую строку C). Затем отправьте их в myProgram в качестве входных данных. Как я могу написать это в сценарии оболочки? Я написал, что cat A > file echo >> file //want to start all contents in new line cat B >> […]

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