В ударе некоторые переменные резервируются, такие как 0$, который дает название команды - в этом экземпляре, это - название сценария (следовательно ./shell.txt). Другим примером является $$, который даст идентификатор процесса. Я полагаю, что $FUNCNAME должен распечатать название используемой функции.
Любые переменные в формате, $1$ 2$ 3 и т.д. будет любыми позиционными параметрами, которые Вы передали ему.
Если бы Вы удалили переменную за 0$ и заменили ее $FUNCNAME, то Вы получили бы вывод, который Вы ищете.
Вот короткий сценарий, давайте сохраним его как passingVariables.sh (мы используем .sh, чтобы показать, что это - сценарий оболочки - чисто поверхностный, но он помогает сохранить вещи прямо):
#!/bin/bash
echo "The first word is $1 and the second word is $2"
Теперь, если я выполнил его как это:
./passingVariables.sh apple orange
Это выложило бы следующее:
"The first word is apple and the second word is orange"
Насколько я знаю, такое поведение уникально для терминальных устройств, так что это то, что вы должны использовать.
Используйте псевдо-тройку, ведомая сторона которой находится в режиме ICANON
, и запишите Ctl-d ( '\4'
) на ведущей стороне.
Как насчет:
echo -n '' > /path/to/the/fifo
echo -n
не дает новых линий и »
- пустая строка. Так что это должно привести к нему (0 байта), написанное в ФИФО.
Вы можете сократить, что Echo
вниз, чтобы буквально ничего не делать:
> /path/to/the/fifo
(если вы осторожны, чтобы не неправильно понять его как трубопровод какой-то другой выход)
[