member
переменной присваивается неопределенное значение. Поэтому проверьте значение ответа message.mentions.members.first();
или message
.
Вставьте это в команду в текстовом пакете, он добавит все, что находится в буфере обмена, в конец всех выбранных строк:
#!/bin/bash
if [[ $(pbpaste|wc -l) -eq 0 ]]
then r=`pbpaste`
sed 's/$/'$r'/'
else sed 's/$/,/'
fi
В настоящее время он ограничен добавлением одной строки объемом текста, если буфер обмена содержит более одной строки, по умолчанию будет использоваться запятая в конце выбранных строк.
Изменить:
Чтобы пойти немного дальше, вот версия, которая предоставляет диалоговое окно, которое предлагает ввести строку, которая будет добавлена к каждой строке в выделении:
#!/bin/bash
r=$(CocoaDialog inputbox --title "String to be appended to EOL" \
--informative-text "Enter string:" \
--button1 "Okay" --button2 "Cancel")
[[ $(head -n1 <<<"$r") == "2" ]] && exit_discard
r=$(tail -n1 <<<"$r")
sed "s/$/$r/"
В меню Текст уже есть команда " Редактировать каждую строку в выделении ", чтобы точно это сделать. Он поместит курсор в первую строку, а то, что вы там напечатаете, повторяется в каждой строке.
Создание новой команды в редакторе пакетов
#!/bin/bash
sed 's/$/,/'
В раскрывающемся списке ввода выберите Выбранный текст или Ничего
На выходе выберите Заменить существующий текст
Я только что протестировал его, и он работает нормально.
Вы также можете выбрать сочетание клавиш, чтобы сделать его более эффективным.
If you're willing to avoid the command route and simply use the Find/Replace dialog simply do as follows:
'$'
(to indicate the end of the line)','
(what you want appended)Option
, this will change "Replace All" to "In Selection"This technique can be applied in a number of other useful ways. For example, changing '$'
to '^'
if you want to prefix each line.