选择和 PS3 变量

选择和 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
#? 

我对此不太满意。我希望#?有一个\n然后说Select a config file to edit with vi?。我尝试了很多方法来编辑PS3,但我尝试的所有方法都无法实现这一点(具体来说, 总是\n失败)。如何让我的函数有自定义提示?

答案1

您可以在字符串中插入文字换行符:

PS3='
Select a config file to edit with vi? '

或者使用printfC 风格\n来换行:

PS3="$(printf '\nSelect a config file to edit with vi? ')"

或者使用 bash shellprintf -v直接写入变量

printf -v PS3 '\n%s ' 'Select a config file to edit with vi?'

相关内容