Есть ли способ выполнить только определенное количество строк из сценария оболочки? Я попробую скопировать их с головой и поставить их на отдельный .sh, но мне интересно, есть ли ярлык ...Выполнять n строк сценария оболочки
ответ
Реорганизовать сценарий оболочки и создать функции.
Серьезно, поместите каждую строку кода в функцию.
Затем (используя ksh в качестве примера), отправьте сценарий с помощью «.». в интерактивную оболочку.
Теперь вы можете запускать любую из функций по имени, и будет работать только код внутри этой функции.
Этот тривиальный пример иллюстрирует это. Вы можете использовать это двумя способами: 1) Свяжите сценарий, чтобы вы могли назвать его по имени одной из функций. 2) Исходный сценарий (с . script.sh
), и вы можете повторно использовать функции в другом месте.
function one {
print one
}
function two {
print two
}
(
progname=${0##*/}
case $progname in
(one|two)
$progname [email protected]
esac
)
Я принял этот стиль для любого скрипта длиной более 10-12 строк, и это упростило проверку кода и повторное использование частей скриптов. –
Большинство снарядов не имеют такого объекта. Вам придется сделать это с трудом.
Написать свой собственный скрипт/TMP/headexecute, например
#!/bin/ksh
trap 'rm -f /tmp/somefile' 0
head -n $2 $1 > /tmp/somefile
chmod 755 /tmp/somefile
/tmp/somefile
называть его имени файлов и количество строк для выполнения
/TMP/headexecute/TMP/originalscript 10
Это может работать для вас (GNU СЭД):
sed -n '1{h;d};H;2{x;s/.*/&/ep;q}' script
Это выполняет две первые строки в script
.
- 1. выполнять команды Монго с помощью сценария оболочки
- 2. Выполнять несколько сценариев параллельно с помощью сценария оболочки
- 3. Как выполнять команды терминала из сценария оболочки? (MacOS 10.12)
- 4. bash: создать переменную, объединив N строк, где N - аргумент сценария
- 5. Изменение оболочки внутри сценария оболочки
- 6. Выполнять скрипт оболочки с помощью другого интерпретатора
- 7. Каков правильный способ чтения n файлов с использованием сценария оболочки?
- 8. Подтверждение ввода сценария оболочки
- 9. Написание сценария оболочки оболочки для awk
- 10. Выполнение сценария оболочки, использующего SQL-запрос параллельно -
- 11. Выполнять команды sqlplus в сценарии оболочки
- 12. Запуск сценария оболочки внутри сценария Perl
- 13. Удалить диапазон строк из файла с помощью сценария оболочки
- 14. Awking несколько раз в файле сценария оболочки
- 15. Выполнять функцию каждые n команд в bash
- 16. Выполнять команду оболочки синхронно с Elixir/Erlang
- 17. сценария оболочки + вычислить IP-сеть с помощью сценария оболочки
- 18. вызов сценария оболочки (инструмент командной строки) внутри другого сценария оболочки
- 19. Запуск сценария оболочки внутри другого сценария оболочки с другим пользователем
- 20. Выполнять скрипт оболочки в Gradle
- 21. Выполнять команду оболочки из службы
- 22. Анализ аргументов сценария оболочки
- 23. сценария оболочки падает
- 24. синтаксис сценария оболочки Дженкинс
- 25. Кодировщик сценария оболочки
- 26. Анализ сценария оболочки
- 27. Функция сценария оболочки datetime?
- 28. отслеживание сценария движущейся оболочки
- 29. Неясная часть сценария оболочки
- 30. оболочки сценария + номер сумма
Почему вы спрашиваете? Не можете ли вы просто использовать 'bash -vx', чтобы понять, что делает скрипт? –
У меня есть 20-строчный скрипт, и иногда я хочу выполнить только первые 2 строки, а иногда и все. – paranoidhominid
Затем создайте другой скрипт только с двумя строками. –