имена каталогов или файлов, разделенные точкой

В сторону: logger - это стандартная утилита Unix (POSIX). Вы можете выбрать другое имя, чтобы избежать путаницы.

Для программы вы можете использовать | xargs -d '\ n' регистратор . Это может включать случай, когда вы переписываете свою функцию как файл сценария, с добавлением строки shebang, если это необходимо; однако получить все правильное окружение для этого сценария может быть сложно.

Для функции единственный способ передать аргумент - это передать аргумент. Вы можете написать вторую функцию, которая обертывает вашу первую функцию, которую я переименую в logger1 :

logger1(){ echo "... $1" >>$file; }
logger2(){ read -r x; logger1 "$x"; }

echo this is some log info | logger2

, или вы можете просто попросить вашу функцию прочитать свой ввод в первую очередь. Вы даже можете закодировать цикл и заставить его обрабатывать несколько строк, если это предусмотрено, как это делают настоящие средства ведения журнала в большинстве систем.

2
13.08.2016, 03:19
1 ответ

В вашем примере даже нет двоеточия.

Вот реальная переменная PATH из одной из моих систем: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / opt / bin: /usr/i686-pc-linux-gnu/gcc-bin/4.9.3

Каждая запись в этой переменной, разделенной двоеточиями, представляет собой каталог, в котором следует искать вызываемый исполняемый файл, если он не вызывается с полным путем . Например, запуск ls заставит оболочку проверять наличие / usr / local / sbin / ls , / usr / local / bin / ls /, / usr / sbin / ls , / usr / bin / ls , / sbin / ls , чтобы наконец найти / bin / ls и запустить его.

Обратите внимание, что большинство оболочек будут хешировать найденный результат, чтобы избежать поиска по пути в следующий раз.

Обновление на основе вашего редактирования

Точка (. ) внутри имени файла абсолютно не влияет на его работу в среде Unix (или Linux), но обычно используется, как и в Windows, для представления расширения файла, которое может помочь определить тип файла.

Обратите внимание, что точка в начале имени файла, например /myfolder/.filename , скрывает файл от обычного списка.

2
27.01.2020, 22:11

Теги

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