태그 보관물: prompt

prompt

MySQL 명령 줄 색상 프롬프트 -hlocalhost -A –prompt=”\u@\h:\d> ” 내가 좋아하는 것 root할

MySQL 명령 줄 색상 프롬프트에 색상을 추가하고 싶습니다.

지금까지 스크립트 (database.sh)에 있습니다.

mysql -uroot -hlocalhost -A --prompt="\u@\h:\d> "

내가 좋아하는 것 root빨간색 , @블루 , localhost녹색database시안 :

root@localhost:database>

내 스크립트 에서이 작업을 수행 할 수 있습니까?



답변

할 수 없다고 말하는 사람들의 말을 듣지 마십시오. 이리:

$ alias colormysql=$(echo -e 'mysql --prompt="\x1B[31m\\u\x1B[34m@\x1B[32m\\h\x1B[0m:\x1B[36m\\d>\x1B[0m "')

그때:

$ colormysql -hHOSTNAME -uUSERNAME -pPASSWORD ...

답변

컬러화 된 mysql 프롬프트 설정에 대한 연습.

1 단계. 설정된 프롬프트로 정상적으로 로그인하는 방법을 이해합니다.

eric@dev ~ $ mysql --host=yourhost.com -u username --prompt="foobar> " -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 711
Server version: 5.6.19 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

foobar>

2 단계. echo를 통해 해석 된 표현식을 ‘alias’로 파이프하는 방법을 이해하십시오.

위의 1 단계와 정확히 동일합니다.

eric@dev ~ $ alias penguins=$(echo -e 'mysql --host=yourhost.com -u dev --prompt="foobar> " -p')
eric@dev ~ $ penguins
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 713
Server version: 5.6.19 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

foobar> exit
Bye
eric@dev ~ $

3 단계. echo -e가 색상 표현을 평가하는 방법 이해 :

“foobar>”프롬프트가 빨간색으로 표시됩니다.

alias penguins=$(echo -e 'mysql --host=yourhost.com -u dev --prompt="\x1B[31mfoobar>\x1B[0m " -p')
penguins

이처럼 :

4 단계. 여기서 무슨 일이 일어나고 있는지 혼란 스러울 경우 :

표현을보십시오 : \x1B[31mfoobar>\x1B[0m

세 부분으로 구성됩니다.

code               what it means:

\x1B[31m           Start colorizing, 31m is red.
foobar>            prompt text
\x1B[0m            Stop colorizing.

4 단계. 고급, 프롬프트를 정말 멋지게 만듭니다.

eric@dev ~ $ alias penguins=$(echo -e 'mysql --host=yourhost.com -u dev --prompt="\x1B[31m\\u\x1B[34m@\x1B[32m\\v\x1B[0m:\x1B[36m\\d>\x1B[0m " -p')
eric@dev ~ $ penguins

이 거대한 코드의 기능에 대해 혼란 스러울 경우 :

\x1B[31m\\u\x1B[34m@\x1B[32m\\v\x1B[0m:\x1B[36m\\d>\x1B[0m

설명:

Code         Note
\x1B[31m     Start colorizing red
\\u          escape the backslash for passage through echo, and print username
\x1B[34m     Start colorizing dark blue
@            literal at sign
\x1B[32m     Start colorizing green
\\v          escape the backslash for passage through echo, print server version
\x1B[0m      Stop colorizing
:            literal colon
\x1B[36m     Start colorizing cyan
\\d>         Backslash for passage through echo, print default db and >
\x1B[0m      Stop colorizing.

와우 많은 코드.


답변

프롬프트가 터미널의 제목에 있기를 원했습니다. 본질적으로 다른 프롬프트 코드 인 컬러 프롬프트를 원할 때와 같은 문제입니다. 이것을 가로 질러 colormysql답변에 언급 된 것과 같은 특별한 별칭을 기억하지 않고도 할 수 있는지 궁금했습니다 .

.bashrc내 컴퓨터에서 트릭을 수행하는 다음을 추가했습니다 .

export MYSQL_PS1=$(echo -e "\033]0;\u@\h [\d]\007\u@\h [\d]> ")

이것이하는 것은 변수에 echo -e원시 이스케이프 문자 (심볼 문자가 아닌)를 생성하는 데 사용 됩니다 MYSQL_PS1. 이것은 색상에도 적용됩니다.


답변

매우 유감스러운 답변이지만 할 수는 없습니다.

ANSI 이스케이프 시퀀스 사용과 관련하여 MySQL은 다음을 허용합니다 .

옵션 값에 이스케이프 시퀀스“\ b”,“\ t”,“\ n”,“\ r”,“\”및“\ s”를 사용하여 백 스페이스, 탭, 줄 바꿈, 캐리지 리턴, 백 슬래시 및 공백 문자

cmjdmiller의 답변과 관련하여 grc 는 “pager”를 통해 MySQL 셸의 출력을 표시하는 기능 만합니다 .

당신이 할 수있는 최선의 방법은 다음 과 같이 rlwrap을 사용 하는
rlwrap -a -p'GREEN' mysql -uroot -hlocalhost -A --prompt="\u@\h:\d> "입니다. 그러나 전체 프롬프트를 색상으로 표시하므로 세밀한 제어가 불가능합니다. 암호는 일반 텍스트로 표시되므로주의하십시오.


답변