Hvordan kan jeg ændre min bash-prompt for at vise min arbejdsmappe?

Jeg kan udskrive min nuværende arbejdsdir sådan her

myPrompt$ pwd /Users/me/myDir 

Jeg vil have min shell at se sådan ud

/Users/me/myDir$ pwd /Users/me/myDir 

Er det muligt? Hvordan kan jeg gøre det?

Kommentarer

  • På OS X er filens navn .bash_profile ikke kun .profile. Det vil automatisk indlæses for dig.
  • Ikke helt. OSX starter login-skaller som standard, og det betyder, at bash ser efter ~/.bash_profile, ~/.bash_login og ~/.profile i den rækkefølge og læser og udfører kommandoer fra den første, der findes og kan læses. Under alle omstændigheder er dette virkelig en kommentar og ikke et svar, så jeg konverterer den til en.

Svar

Du kan bruge escape-sekvenser i prompt variabler .

Sæt dette i din ~/.bashrc:

PS1="\w\$ " 

Kommentarer

  • tak. Jeg foretog den ændring. Nu ser jeg: Abrams-MacBook-Air-3: tmp abramhandler $ pwd; / Brugere / abramhandler / tmp Abrams-MacBook-Air-3: tmp abramhandler $ …. Jeg vil kun vise den del, der siger " tmp " til min anmodning. Hvordan skjuler jeg resten? Jeg vil skjule " abramhandler " og " Abram ' s-MacBook-Air-3 " dele
  • @ akh2103 brug \W i stedet for \w. Se linket, som Gilles gav dig for en (kort) forklaring af flugtkoderne.
  • @terdon Jeg ser det samme med \ W og \ w. Jeg kører Unix på OSX.
  • @ akh2103 Hvis du kører OSX og bruger terminalappen, skal du foretage ændringer i ~ / .profile ikke .bashrc, da terminal som standard kører en login-shell. Du skal også kilde ~ / .profile eller åbne en ny terminal for at ændringerne skal træde i kraft. Du skal også redigere for at tilføje flere oplysninger. Jeg kan ' ikke forstå, hvad du beder om fra din sidste kommentar .
  • @terdon når jeg kører kilde ~ / .profil, ændrer det stien korrekt i den aktuelle terminal. Men når jeg åbner en ny terminal, ser jeg stadig " abram ' s mac book air " osv. Jeg forsøgte at tilføje kilde ~ / .profile til både .profile- og .bashrc-filerne, men stadig ikke held. Eventuelle ideer?

Svar

Her “er en en-linie til OSX. Den tilføjer den prompt, du vil have til profilfilen og indlæser derefter profilen igen.

echo "PS1="\w\$ "" >> ~/.bash_profile; source ~/.bash_profile 

På El Capitan vil du bruge

echo "PS1="\w\$ "" >> ~/.profile; source ~/.profile 

Svar

Af en eller anden grund "\w\$" fungerede ikke for mig, men i stedet for gjorde: export PS1="$(pwd) \$" og det fungerede.

Kommentarer

  • Det fungerer ikke så godt, når du skift mapper …

Svar

Ligner en gammel tråd, men nedenstående trin fungerede for mig på OS X 10.9.5

  • sæt PS1="\w\$ " i ~/.profile
  • hvis du lavede eventuelle ændringer i ~/.bashrc fjern dem
  • luk terminalen med cmd+q
  • genåbner terminalen

Kommentarer

  • I mit tilfælde er komplet PATH er virkelig stor, så jeg har tilføjet endnu et flag til næste linje som PS1 = ' \ w \ n \ $ '

Svar

Enkel løsning

Åbn ~/.bash_profile og tilføj følgende indhold

# \[\e[0m\] resets the color to default color reset_color="\[\e[0m\]" # \[\033[33m\] sets the color to yellow path_color="\[\033[33m\]" # \e[0;32m\ sets the color to green git_clean_color="\[\e[0;32m\]" # \e[0;31m\ sets the color to red git_dirty_color="\[\e[0;31m\]" # determines if the git branch you are on is clean or dirty git_prompt () { # Is this a git directory? if ! git rev-parse --git-dir > /dev/null 2>&1; then return 0 fi # Grab working branch name git_branch=$(git branch 2>/dev/null| sed -n "/^\*/s/^\* //p") # Clean or dirty branch if git diff --quiet 2>/dev/null >&2; then git_color="${git_clean_color}" else git_color="${git_dirty_color}" fi echo " [$git_color$git_branch${reset_color}]" } export PS1="${path_color}\w\[\e[0m\]$(git_prompt)\n" 

Dette skal:

1) Prompt the path you"re in, in color: path_color. 2) Tell you which branch are you. 3) Color the name of the branch based on the status of the branch with git_clean_color for a clean work directory and git_dirty_color for a dirty one. 4) The brackets should stay in the default color you established in your computer. 5) Puts the prompt in the next line for readability. 

Du kan tilpasse farverne med denne liste

Sofistikeret løsning

En anden mulighed er at bruge Git Bash Prompt, installer med dette . Jeg brugte muligheden via Homebrew på Mac OS X.

git_prompt_list_themes for at se temaerne, men jeg kunne ikke lide nogen af dem.

git_prompt_color_samples for at se tilgængelige farver.

git_prompt_make_custom_theme [<Name of base theme>] for at oprette et nyt brugerdefineret tema, dette skal skabe en .git -prompt-colors.sh-fil.

subl ~/.git-prompt-colors.sh for at åbne git-prompt-colors.sh og tilpasse:

.git- prompt-colors.sh-filen skal se sådan ud med min tilpasning

 override_git_prompt_colors() { GIT_PROMPT_THEME_NAME="Custom" # Clean or dirty branch if git diff --quiet 2>/dev/null >&2; then GIT_PROMPT_BRANCH="${Green}" else GIT_PROMPT_BRANCH="${Red}" fi } reload_git_prompt_colors "Custom" 

Dette svar er baseret på mit SO-svar, som du kan se her . Håber det hjælper, have en dejlig dag!

Kommentarer

  • Jeg tror, at OP havde til hensigt blot at vise shell ' s arbejdskatalog. Som en almindelig Git-bruger bruger jeg ' også en fancy Git-opmærksom prompt, men det ser ud til at være for stort her.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *