Программирование на языке сценариев командной оболочки - стр. 228
(cat list1 list2 list3 | sort | uniq > list123) & (cat list4 list5 list6 | sort | uniq > list456) & # Слияние и сортировка двух списков производится одновременно. # Запуск в фоне гарантирует параллельное исполнение. # # Тот же эффект дает # cat list1 list2 list3 | sort | uniq > list123 & # cat list4 list5 list6 | sort | uniq > list456 &
wait # Ожидание завершения работы подоболочек.
diff list123 list456
Перенаправление ввода/вывода в/из подоболочки производится оператором построения конвейера "|", например, ls -al | (command).
Блок команд, заключенный в фигурные скобки не приводит к запуску дочерней подоболочки. { command1; command2; command3; ... } |
Глава 20. Ограниченный режим командной оболочки
Команды, запрещенные в ограниченном режиме командной оболочки
Запуск сценария или его части в ограниченном режиме, приводит к наложению ограничений на использование некоторых команд. Эта мера предназначена для ограничения привилегий пользователя, запустившего сценарий, и минимизации возможного ущерба системе, который может нанести сценарий.
В ограниченном режиме запрещена команда cd -- смена текщего каталога.
Запрещено изменять переменные окружения $PATH, $SHELL, $BASH_ENV и $ENV.
Заперщен доступ к переменной $SHELLOPTS.
Запрещено перенаправление вывода.
Запрещен вызов утилит, в названии которых присутствует хотя бы один символ "слэш" (/).
Запрещен вызов команды exec для запуска другого процесса.
Запрещен ряд других команд, которые могут использовать сценарий для выполнения непредусмотренных действий.
Запрещен выход из ограниченного режима.
Пример 20-1. Запуск сценария в ограниченном режиме
#!/bin/bash # Если sha-bang задать в таком виде: "#!/bin/bash -r" # то это приведет к включению ограниченного режима с момента запуска скрипта.
echo
echo "Смена каталога." cd /usr/local echo "Текущий каталог: `pwd`" echo "Переход в домашний каталог." cd echo "Текущий каталог: `pwd`" echo
