У меня есть небольшая функция, которая хранится в моем профиле для быстрого доступа к некоторым файлам конфигурации:
viconf ()
{
COLUMNS=12;
printf "Edit config file:\n\n";
select x in ~/.bashrc ~/.bash_profile ~/.bash_login ~/.profile ~/.inputrc ~/.vimrc;
do
vim $x;
break;
done
}
Она создает такой вывод:
1) /home/boss/.bashrc
2) /home/boss/.bash_profile
3) /home/boss/.bash_login
4) /home/boss/.profile
5) /home/boss/.inputrc
6) /home/boss/.vimrc
#?
I я не очень доволен этим. Я хочу, чтобы #?
имел \ n
, а затем сказал Выберите файл конфигурации для редактирования с помощью vi?
. Я пробовал множество способов отредактировать PS3
, но все, что я пытаюсь, не помогает (в частности, \ n
всегда терпит неудачу). Как сделать так, чтобы моя функция имела настраиваемую подсказку?
Вы можете либо вставить литеральную новую строку в строку:
PS3='
Select a config file to edit with vi? '
или использовать printf
с C-стилем \n
для новой строки:
PS3="$(printf '\nSelect a config file to edit with vi? ')"
или с помощью printf -v
оболочки bash для прямой записи в переменную
printf -v PS3 '\n%s ' 'Select a config file to edit with vi?'