меньше: отфильтровывать шаблон, передаваемый в качестве аргумента командной строки следовать за файлом через функцию bash

#bash #shell #command-line-arguments

#bash #оболочка #аргументы командной строки

Вопрос:

Я пытаюсь создать функцию bash, которая будет использоваться less для применения шаблона и следования за файлом, используя аргумент, переданный функции

 my_less_function() {
        if [ -z "$1" ]
        then
                # if no arg
                less  F /var/log/my.log
        else
                # else, filter out the arg
                less  

моя проблема в том, что я не могу заставить аргумент правильно заменить в блоке else

 my_less_function MY_VALUE   отображается  Non-match amp;/MY_VALUEnF  в меньшем

похоже, что он объединяет аргумент и  nF  , но  nF  должен запускать команду follow вместо того, чтобы интерпретироваться как часть аргумента

есть идеи?


Ответ №1:

неправильно : less $'amp;!'$1'nF' /var/log/my.log


правильно : less $'amp;!'${1}$'nF' /var/log/my.log

amp;!'$1'nF' /var/log/my.log
fi
}
моя проблема в том, что я не могу заставить аргумент правильно заменить в блоке else

my_less_function MY_VALUE отображается Non-match amp;/MY_VALUEnF в меньшем

похоже, что он объединяет аргумент и nF , но nF должен запускать команду follow вместо того, чтобы интерпретироваться как часть аргумента

есть идеи?

Ответ №1:

неправильно : less $'amp;!'$1'nF' /var/log/my.log


правильно : less $'amp;!'${1}$'nF' /var/log/my.log