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

Я создал 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 и потребует большего ввода ,

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

One Solution collect form web for “Могу ли я обрабатывать все, что я набрал после команды в качестве исходной строки?”

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

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

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

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

  • добавление программ в путь
  • Как отслеживать вызовы системы после ввода команды?
  • Получите дополнение к результату команды ls
  • Почему `exit &` не работает?
  • Как создать динамическую подстановку процессов на основе ввода (несколько FIFO)?
  • В чем разница между «* .pl» и * .pl в grep? Почему цитирование изменяет результат?
  • Прочитать длинную строку в файле, используя цикл чтения?
  • су и смешение алиасов
  • Лучший способ удалить расширение файла из строки?
  • Есть ли способ для сценария оболочки узнать, какая программа его выполнила?
  • Как я могу выполнить локальный скрипт на удаленном компьютере и включить аргументы?
  • Linux и Unix - лучшая ОС в мире.