Могу ли я обрабатывать все, что я набрал после команды в качестве исходной строки?

Я создал bash func для себя, поэтому я могу через несколько слов в файл tree_hole, это выглядит так: bashrc:

function th { echo -e "\n$@" >> /Users/zen1/zen/pythonstudy/tree_hole; } export -f th 

Таким образом, я могу сделать th Tom, I like your new laptop чтобы вытащить целое предложение «Tom …» в конец файла tree_hole.

Но есть проблема. Кажется, эта функция не конвертировала всю часть переменных в необработанную строку. Так что th "hi, Tom" получит hi Tom вместо предполагаемого "hi, Tom" , " отсутствует». Кроме того, я не могу набирать ни одного ' или " или », который будет неверно истолкован bash и потребует большего ввода ,

Итак, есть ли способ, чтобы я мог набирать все, что следовало за командой как необработанная строка? Или как мне улучшить свою функцию, чтобы можно было решить специальную проблему " , ' , «?

  • grep string из содержимого команды file, а затем удалить файл
  • Новые (логин) оболочки (окно) открывается в $ HOME вместо $ PWD (как и раньше) на macOS. Что дает?
  • Перемещение файлов рекурсивно, если выполняется определенное условие
  • Selinux запрещает доступ к mysqld
  • Как выйти из сценария в условном выражении?
  • Странная проблема SSH, ssh работает с -t, но замораживает без нее
  • Перезапустить приложение после завершения
  • Мониторинг ошибок синхронизации Fcs
  • One Solution collect form web for “Могу ли я обрабатывать все, что я набрал после команды в качестве исходной строки?”

    То, что вы хотите, невозможно. Вам не нравится поведение оболочки, но эта часть поведения оболочки не может быть изменена.

    Думаю, это будет лучше для вас:

     function th { { echo; cat; } >> /Users/zen1/zen/pythonstudy/tree_hole; } 

    Ваша функция будет вызываться без параметров. cat будет читать со стандартного ввода и добавлять к файлу. Вы можете вводить все, что позволяет терминал (т. Е. Никаких проблем с " , ' , «новая линия» и т. Д.). Вы должны завершить ввод с помощью Ctrl- D .

    Linux и Unix - лучшая ОС в мире.