Как запускать внешние исполняемые файлы в firejail

#!/bin/sh

( cd -- "${2:-.}" && ls -d -- "$1"*${2:+/} )

То есть,

  1. cdв каталог, заданный вторым аргументом, или в ., если второй аргумент не указан или он пуст. --запрещает cdинтерпретировать что-либо в $2как вариант.
  2. выполнить ls -dдля всех имен, начинающихся с первого аргумента. -dпредотвращает перечисление содержимого любых каталогов с соответствующими именами каталогов. --запрещает lsинтерпретировать что-либо в $1как вариант. Если задан второй аргумент, в конце шаблона будет /и, следовательно, он будет соответствовать только именам каталогов.

Все это происходит в подоболочке, так что cdне меняет рабочий каталог остальной части скрипта (, на что, как я полагаю, намекает последнее предложение ). В любом случае сценарий не сможет изменить рабочий каталог для вызывающей оболочки, если только эта оболочка не использует sourceдля запуска сценария, а подоболочка не предотвратит этого. Таким образом, рабочий каталог восстанавливается ("возвращается" )к тому состоянию, в котором он был до запуска сценария.

0
02.12.2020, 19:48
0 ответов

Теги

Похожие вопросы