Пользовательские Команды на Терминале с символом вертикальной черты

Я должен сделать некоторые пользовательские команды на Ubuntu, все хорошо работает, пока я не нашел, что моя новая пользовательская команда требует, чтобы иметь | как входной параметр. Так, когда я создал свою функцию, она не распознает часть после канала как команда и бросает команду, не найденную ошибкой. т.е.

function listhorizontal(){
echo "1st line"
echo "hello $1"
echo "3rd line"
}

#output
ubuntu:~$ listhorizontal JohnDoe
1st line
hello JohnDoe
3rd line

это работает, но когда я пробую за команду, которая имеет | как:

function getwithpipe(){
if [[ $1 =~ "|" ]]
then
   echo "It's there!"
fi

}
#output
ubuntu:~$ getwithpipe stringcontains|fortest
fortest: command not found

затем это не будет работать.

Существует ли возможность изменить отображение для канала?

0
задан 20 February 2020 в 21:01

1 ответ

Необходимо будет выйти или заключить любые специальные символы оболочки в кавычки напр.

$ getwithpipe stringcontains\|fortest
It's there!

или

$ getwithpipe "stringcontains|fortest"
It's there!
1
ответ дан 20 February 2020 в 22:50

Другие вопросы по тегам:

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