Вы можете проверить смонтированные файловые системы с помощью команды df
. Один лайнер для получения точки монтирования для sda может быть:
df -h | grep sda1 | tr -s " " | cut -d " " -f 6
Обратите внимание, что в случае автоматического монтирования пути / mnt и / run также являются возможными.
По крайней мере следующее:
Опции команды: foo --bar
Стандартный ввод: foo | bar
или bar < foo
Файл(ы): foo *.*
(или открыв файл(ы) с помощью кода в foo
) †
Экспорт среды: export foo=bar; baz
Окружение (без экспорта): foo=bar baz
или env foo=bar baz
ЗДЕСЬ doc: foo << EOF
бар
EOF
HERE string: foo <<< bar
Сигналы kill -SIGUSR1 $procid
Целый ряд межпроцессных взаимодействий, таких как сокеты, TCP , отображаемые в память файлы
† да, я понимаю, что стандартный ввод — это файл (или файлоподобный). И передача таких файлов действительно аналогична передаче опций
Начнем с того, что sort << HERE
и т.д. не является здесь-строкой. Это здесь-документ. В этой строке используется оператор <<<
. Это в bash (и некоторых других оболочках).
В общем, есть два пути. Один через стандартный ввод (и перенаправления), а другой через параметры.
Стандартный ввод и его перенаправления
Это поток, который по умолчанию подключен к терминалу, в котором выполняется команда и связан с fd (файловым дескриптором) 1. Он передает все, что вводится на терминал. Хотя его (ввод) можно перенаправить, как при использовании канала |
, так и при использовании здесь-документов или здесь-строк. Тогда вход поступает не с терминала, а прикрепляется к стандартному выводу команды, предшествующей каналу. Различные оболочки имеют разные перенаправления, поэтому для этой категории вам следует проверить документацию оболочки. Найдите перенаправления ввода.
Параметры
Это то, что в вашем примере sort foo
. Вызывая программу или функцию, вы передаете ей один или несколько параметров. Локальный файл — это только одна из возможностей. Параметр может содержать URL-адрес или что-то еще. Варианты здесь безграничны.
Подводя итог, можно выделить два основных способа:
первый абстрагируется от внутренней логики приложения и манипулирует стандартным вводом на уровне ОС/оболочки,
а второй задействует внутренности приложения, и именно они предлагают безграничные возможности, основываясь на параметрах вызова как на интерфейсе.
Для обоих способов ответ: ограничений нет. Хотя фактические ограничения связаны с ОС/оболочкой и самим приложением.