выберите и переменную PS3

У меня есть небольшая функция, которая хранится в моем профиле для быстрого доступа к некоторым файлам конфигурации:

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 всегда терпит неудачу). Как сделать так, чтобы моя функция имела настраиваемую подсказку?

0
задан 6 December 2020 в 13:10

1 ответ

Вы можете либо вставить литеральную новую строку в строку:

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?'
1
ответ дан 5 December 2020 в 20:05

Другие вопросы по тегам:

Похожие вопросы: