Я начинаю писать сценарии Bash, поэтому я запутался в архитектуре труб. Например, для базовых команд, таких как grep
, нужно ли каким-то образом сконфигурировать и запрограммировать каналы для включения в команду? Или трубы просто автоматически передаются в выходные данные в качестве первого аргумента в отношении того, к чему идет передача?Как настроить и разрешить каналы в моем сценарии bash?
Мой главный вопрос: у меня есть сценарий, который принимает текст в качестве первого аргумента, используя что-то вроде my_script.sh text_file
. Будут ли трубы работать автоматически, если я буду делать echo Hello | my_script.sh
, или мне нужно будет следовать некоторому интерфейсу, чтобы разрешать трубы.
'echo Hello | my_script.sh' будет писать Hello для стандартного ввода сценария bash, к которому можно получить доступ через команду 'read'. Если вы хотите, чтобы это как аргумент, используйте 'my_script.sh $ (echo Hello)', который на самом деле равен 'my_script.sh Hello' – msrd0
, и ваш скрипт не может разрешать каналы, так как он не может запрещать каналы. – msrd0