Я пытаюсь передать текст по каналу в файл:
'date +"%H:%M" development' > log
Пример: 12:12 разработки
Но это на самом деле передает по каналу date +"%H:%M" development
и нет 12:12 development
Существует два способа выполнить желаемый вывод.
неправильный путь - система анализирует строку и подает 'разработку' как аргумент в пользу 'даты'. Так как приложение 'даты' не имеет такого аргумента, оно бросает полезную ошибку.
$ date +"%H:%M" development
date: extra operand ‘development’
Try 'date --help' for more information.
Решение № 1: Используйте дату, форматирующую
$ date +"%H:%M development"
07:10 development
Решение № 2: Используйте Замена Команды
$ echo $(date +"%H:%M") development
07:10 development
Кажется, что Вы используете echo
или printf
или некоторая другая команда для перенаправления вывода к файлу журнала, иначе Вы получили бы сообщение об ошибке как:
bash: date +"%H:%M" development: command not found
, Если это верно, Вы хотели бы использовать замену команды, чтобы получить вывод эти date
команда и также избегать использования сильного заключения в кавычки, ' '
, вокруг Вашей строки. Следующее будет работать:
echo "$(date +'%H:%M development')" > log
или
echo "$(date +'%H:%M) development" > log
, Если Вы просто используете date
без [1 110] и т.д., затем включайте строку 'разработка' в строке форматирования даты, строка форматирования может быть заключена в кавычки или с [1 111] или с "
, поскольку она не расширена ударом, но эти date
команда:
date +"%H:%M development" > log
или
date +'%H:%M development' > log