7

Я пытаюсь написать простой псевдоним на моем терминале Mac OS X, чтобы скопировать текущий рабочий каталог. У меня есть это:

alias cpwd="echo \`pwd\` | pbcopy; echo \"Copied \`pwd\`\""

Тогда я могу просто запустить следующее, чтобы скопировать его:

$ cpwd

Проблема в том, что echo pwd в конце включает перевод строки. Поэтому, когда я вставляю его, он выполняется немедленно (если он вставлен в терминал).

Все, что я хочу сделать, это снять пробную новую строку, но ничего, что я нахожу в Интернете, похоже, не работает для меня. Видел различные решения, включающие sed , awk и cut , но я не совсем понял. Похоже, это было бы легко сделать.

2 ответа2

4

Я считаю, что это должно работать:

alias cwd="echo -n `pwd` | pbcopy; echo \"Copied `pwd`\""

-n говорит "нет новой строки". Либо так, либо вы всегда можете пропустить вывод через tr и удалить символ новой строки следующим образом:

alias cwd="echo `pwd` | tr -d "\n" | pbcopy; echo \"Copied `pwd`\""

Я не уверен, хотите ли вы удалить символ новой строки в конце первого эха или из обоих - но я думаю, вы можете понять, сработает ли он для первого;)

0

Я не уверен насчет команды Mac OS X echo, но если указан аргумент -n, echo не выведет завершающий символ новой строки:

-n не выводить завершающий перевод строки

С уважением...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .