Первое, что я заметил в Linux, - это разные способы ввода данных в команду, я знаю несколько, но я не знаю, сколько их всего.
пути, которые я знаю до сих пор:
трубопроводы:
echo -e "zorro\nwurst\nlahmacun\nsozialhilfe" | sort
с клавиатуры с сигналом конца файла:
sort
>gurken
>zucker
>braunkohle
из файла:
sort foo
ЗДЕСЬ строка (на самом деле называется ЗДЕСЬ документ):
sort << HERE
>wasserkopf
>elternzeit
>schuldeingeständnis
>währungsreform
>alabasterhaut
HERE
Это все или есть еще способы сделать это, почему есть разные способы, какие-то излишние?
источник
foo < bar
в качестве дополнительного варианта (файл через stdin)Для начала,
sort << HERE
и так далее, это не строка здесь. Это здесь документ. Здесь строка использует<<<
оператор. Это в bash (и некоторых других оболочках).В общем, есть два пути. Один через стандартный ввод (и перенаправления), а другой через параметры.
Стандартный ввод и его перенаправления
Это поток, который по умолчанию подключен к терминалу, в котором выполняется команда и связан с fd (дескриптор файла) 1. Он передает все, что набрано в терминале. Хотя он (вход) может быть перенаправлен как при использовании канала, так
|
и при использовании здесь-документов или здесь-строк. Тогда вход не поступает с терминала, а присоединяется к стандартному выводу команды, предшествующей каналу. Разные оболочки имеют разные перенаправления, поэтому для этой категории вы должны проверить документацию оболочки. Ищите входные перенаправления.параметры
Это то, что в вашем примере
sort foo
. Вызывая программу или функцию, вы передаете ей один или несколько параметров. Локальный файл - только одна возможность. Параметр может содержать URL или что-то еще. Варианты здесь бесконечны.Подводя итог, можно выделить два основных способа:
первый абстрагируется от внутренней логики приложения и манипулирует стандартным вводом на уровне ОС / оболочки,
в то время как второй связан с внутренностями приложения, и именно они предлагают безграничные возможности, основываясь на параметрах вызова в качестве интерфейса.
Для обоих способов ответ - нет ограничений. Хотя фактические ограничения идут с ОС / оболочкой и самим приложением.
источник