How to produce a PS1 prompt in bash or ksh93 similar to tcsh Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) 2019 Community Moderator Election Results Why I closed the “Why is Kali so hard” questionbash equivalent of this use of tcsh “sched” command?Bash overwrites the first line, PS1 bash promptHow can avoid these spurious characters in my bash prompt?Show only current and parent directory in bash promptExecute command within current shell before every promptAlias for “cd” which shows current directory each time I change directories?Parameters in bash $PS1 variableHow do I display only the current directory while using powerline in the terminal prompt.?what shell is used to run a scriptprompt (PS1) doesn't update on bound command

How to produce a PS1 prompt in bash or ksh93 similar to tcsh

Like totally amazing interchangeable sister outfit accessory swapping or whatever

2 sample t test for sample sizes - 30,000 and 150,000

How do I deal with an erroneously large refund?

Does Prince Arnaud cause someone holding the Princess to lose?

Can the van der Waals coefficients be negative in the van der Waals equation for real gases?

What documents does someone with a long-term visa need to travel to another Schengen country?

A German immigrant ancestor has a "Registration Affidavit of Alien Enemy" on file. What does that mean exactly?

Can gravitational waves pass through a black hole?

Providing direct feedback to a product salesperson

Why aren't road bike wheels tiny?

tabularx column has extra padding at right?

Are Flameskulls resistant to magical piercing damage?

Short story about an alien named Ushtu(?) coming from a future Earth, when ours was destroyed by a nuclear explosion

Is there a verb for listening stealthily?

Protagonist's race is hidden - should I reveal it?

How to mute a string and play another at the same time

Kepler's 3rd law: ratios don't fit data

What is the definining line between a helicopter and a drone a person can ride in?

Proving inequality for positive definite matrix

Meaning of "Not holding on that level of emuna/bitachon"

Will I be more secure with my own router behind my ISP's router?

How was Lagrange appointed professor of mathematics so early?

What's the difference between using dependency injection with a container and using a service locator?



How to produce a PS1 prompt in bash or ksh93 similar to tcsh



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)
2019 Community Moderator Election Results
Why I closed the “Why is Kali so hard” questionbash equivalent of this use of tcsh “sched” command?Bash overwrites the first line, PS1 bash promptHow can avoid these spurious characters in my bash prompt?Show only current and parent directory in bash promptExecute command within current shell before every promptAlias for “cd” which shows current directory each time I change directories?Parameters in bash $PS1 variableHow do I display only the current directory while using powerline in the terminal prompt.?what shell is used to run a scriptprompt (PS1) doesn't update on bound command



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








2















In tcsh, I have the default:



prompt [%m:%c3] %n%# 


which gives prompts like:



[woehler:hacking/c/hello] ajcarr% 


and



[woehler:~] ajcarr% 


In other words, the current directory and up to the next two above it in the path.



In ksh93 or bash, the substitution of $HOME by ~ is easy, as is extracting the name of just the current directory, but I have yet to find a way of replicating the %c3 behaviour of tcsh. At present in ksh93 I have:



[ajcarr@Woehler] hello $ 


and



[ajcarr@Woehler] ~ $ 


Does anyone have any suggestions about how to do this?










share|improve this question






























    2















    In tcsh, I have the default:



    prompt [%m:%c3] %n%# 


    which gives prompts like:



    [woehler:hacking/c/hello] ajcarr% 


    and



    [woehler:~] ajcarr% 


    In other words, the current directory and up to the next two above it in the path.



    In ksh93 or bash, the substitution of $HOME by ~ is easy, as is extracting the name of just the current directory, but I have yet to find a way of replicating the %c3 behaviour of tcsh. At present in ksh93 I have:



    [ajcarr@Woehler] hello $ 


    and



    [ajcarr@Woehler] ~ $ 


    Does anyone have any suggestions about how to do this?










    share|improve this question


























      2












      2








      2


      0






      In tcsh, I have the default:



      prompt [%m:%c3] %n%# 


      which gives prompts like:



      [woehler:hacking/c/hello] ajcarr% 


      and



      [woehler:~] ajcarr% 


      In other words, the current directory and up to the next two above it in the path.



      In ksh93 or bash, the substitution of $HOME by ~ is easy, as is extracting the name of just the current directory, but I have yet to find a way of replicating the %c3 behaviour of tcsh. At present in ksh93 I have:



      [ajcarr@Woehler] hello $ 


      and



      [ajcarr@Woehler] ~ $ 


      Does anyone have any suggestions about how to do this?










      share|improve this question
















      In tcsh, I have the default:



      prompt [%m:%c3] %n%# 


      which gives prompts like:



      [woehler:hacking/c/hello] ajcarr% 


      and



      [woehler:~] ajcarr% 


      In other words, the current directory and up to the next two above it in the path.



      In ksh93 or bash, the substitution of $HOME by ~ is easy, as is extracting the name of just the current directory, but I have yet to find a way of replicating the %c3 behaviour of tcsh. At present in ksh93 I have:



      [ajcarr@Woehler] hello $ 


      and



      [ajcarr@Woehler] ~ $ 


      Does anyone have any suggestions about how to do this?







      bash ksh prompt tcsh






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 3 hours ago









      steeldriver

      38.1k45489




      38.1k45489










      asked 3 hours ago









      Alun CarrAlun Carr

      7112




      7112




















          2 Answers
          2






          active

          oldest

          votes


















          2














          For bash, you could achieve similar results by setting the PROMPT_DIRTRIM variable:



          $ PS1='[u@h] w$ '
          [schaller@r2d2] ~$ pwd
          /home/schaller
          [schaller@r2d2] ~$ PROMPT_DIRTRIM=3
          [schaller@r2d2] ~$ cd /home/schaller/tmp/513924/another/directory/here
          [schaller@r2d2] ~/.../another/directory/here$





          share|improve this answer






























            2














            In ksh93:



            PS1='$PWD#$PWD%?/*/*/*?/ $ '
            share/doc/libnl-3-dev $ _

            PS1='[$HOSTNAME%%.*:$PWD#$PWD%?/*/*/*?/] $USER% '
            [host:share/doc/libnl-3-dev] user% _


            If you want it to also replace $HOME with ~, something nastier is needed:



            PS1='$(d=$PWD/#$HOME/"~";printf %s "$d#$d%?/*/*/*?/") $ '
            ~/w/maemo $ cd sb2-pathmaps
            w/maemo/sb2-pathmaps $ _

            PS1='$(d=$PWD/#$HOME/"~";printf %s "[$HOSTNAME%%.*:$d#$d%?/*/*/*?/]") $USER% '
            [host:w/maemo/sb2-pathmaps] user% _



            All this should also work in bash, though bash has its own prompt escapes (eg. h for $HOSTNAME%%.*) and path shortening mechanism (with PROMPT_DIRTRIM).



            Also, the nastier variant will be really nasty, because bash, unlike ksh93, will fork() a separate process for each $(...; printf ...) command substitution, even if it contains only builtins. This also holds true for pdksh derived shells, like mksh.




            zsh has prompt escapes quite similar but not identical to tcsh:



            zsh$ PS1='[%m:%3c] %n%# '
            [host:share/doc/libnl-3-dev] user% _





            share|improve this answer

























              Your Answer








              StackExchange.ready(function()
              var channelOptions =
              tags: "".split(" "),
              id: "106"
              ;
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function()
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled)
              StackExchange.using("snippets", function()
              createEditor();
              );

              else
              createEditor();

              );

              function createEditor()
              StackExchange.prepareEditor(
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: false,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              imageUploader:
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              ,
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              );



              );













              draft saved

              draft discarded


















              StackExchange.ready(
              function ()
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f513924%2fhow-to-produce-a-ps1-prompt-in-bash-or-ksh93-similar-to-tcsh%23new-answer', 'question_page');

              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              2














              For bash, you could achieve similar results by setting the PROMPT_DIRTRIM variable:



              $ PS1='[u@h] w$ '
              [schaller@r2d2] ~$ pwd
              /home/schaller
              [schaller@r2d2] ~$ PROMPT_DIRTRIM=3
              [schaller@r2d2] ~$ cd /home/schaller/tmp/513924/another/directory/here
              [schaller@r2d2] ~/.../another/directory/here$





              share|improve this answer



























                2














                For bash, you could achieve similar results by setting the PROMPT_DIRTRIM variable:



                $ PS1='[u@h] w$ '
                [schaller@r2d2] ~$ pwd
                /home/schaller
                [schaller@r2d2] ~$ PROMPT_DIRTRIM=3
                [schaller@r2d2] ~$ cd /home/schaller/tmp/513924/another/directory/here
                [schaller@r2d2] ~/.../another/directory/here$





                share|improve this answer

























                  2












                  2








                  2







                  For bash, you could achieve similar results by setting the PROMPT_DIRTRIM variable:



                  $ PS1='[u@h] w$ '
                  [schaller@r2d2] ~$ pwd
                  /home/schaller
                  [schaller@r2d2] ~$ PROMPT_DIRTRIM=3
                  [schaller@r2d2] ~$ cd /home/schaller/tmp/513924/another/directory/here
                  [schaller@r2d2] ~/.../another/directory/here$





                  share|improve this answer













                  For bash, you could achieve similar results by setting the PROMPT_DIRTRIM variable:



                  $ PS1='[u@h] w$ '
                  [schaller@r2d2] ~$ pwd
                  /home/schaller
                  [schaller@r2d2] ~$ PROMPT_DIRTRIM=3
                  [schaller@r2d2] ~$ cd /home/schaller/tmp/513924/another/directory/here
                  [schaller@r2d2] ~/.../another/directory/here$






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 2 hours ago









                  Jeff SchallerJeff Schaller

                  45.2k1164147




                  45.2k1164147























                      2














                      In ksh93:



                      PS1='$PWD#$PWD%?/*/*/*?/ $ '
                      share/doc/libnl-3-dev $ _

                      PS1='[$HOSTNAME%%.*:$PWD#$PWD%?/*/*/*?/] $USER% '
                      [host:share/doc/libnl-3-dev] user% _


                      If you want it to also replace $HOME with ~, something nastier is needed:



                      PS1='$(d=$PWD/#$HOME/"~";printf %s "$d#$d%?/*/*/*?/") $ '
                      ~/w/maemo $ cd sb2-pathmaps
                      w/maemo/sb2-pathmaps $ _

                      PS1='$(d=$PWD/#$HOME/"~";printf %s "[$HOSTNAME%%.*:$d#$d%?/*/*/*?/]") $USER% '
                      [host:w/maemo/sb2-pathmaps] user% _



                      All this should also work in bash, though bash has its own prompt escapes (eg. h for $HOSTNAME%%.*) and path shortening mechanism (with PROMPT_DIRTRIM).



                      Also, the nastier variant will be really nasty, because bash, unlike ksh93, will fork() a separate process for each $(...; printf ...) command substitution, even if it contains only builtins. This also holds true for pdksh derived shells, like mksh.




                      zsh has prompt escapes quite similar but not identical to tcsh:



                      zsh$ PS1='[%m:%3c] %n%# '
                      [host:share/doc/libnl-3-dev] user% _





                      share|improve this answer





























                        2














                        In ksh93:



                        PS1='$PWD#$PWD%?/*/*/*?/ $ '
                        share/doc/libnl-3-dev $ _

                        PS1='[$HOSTNAME%%.*:$PWD#$PWD%?/*/*/*?/] $USER% '
                        [host:share/doc/libnl-3-dev] user% _


                        If you want it to also replace $HOME with ~, something nastier is needed:



                        PS1='$(d=$PWD/#$HOME/"~";printf %s "$d#$d%?/*/*/*?/") $ '
                        ~/w/maemo $ cd sb2-pathmaps
                        w/maemo/sb2-pathmaps $ _

                        PS1='$(d=$PWD/#$HOME/"~";printf %s "[$HOSTNAME%%.*:$d#$d%?/*/*/*?/]") $USER% '
                        [host:w/maemo/sb2-pathmaps] user% _



                        All this should also work in bash, though bash has its own prompt escapes (eg. h for $HOSTNAME%%.*) and path shortening mechanism (with PROMPT_DIRTRIM).



                        Also, the nastier variant will be really nasty, because bash, unlike ksh93, will fork() a separate process for each $(...; printf ...) command substitution, even if it contains only builtins. This also holds true for pdksh derived shells, like mksh.




                        zsh has prompt escapes quite similar but not identical to tcsh:



                        zsh$ PS1='[%m:%3c] %n%# '
                        [host:share/doc/libnl-3-dev] user% _





                        share|improve this answer



























                          2












                          2








                          2







                          In ksh93:



                          PS1='$PWD#$PWD%?/*/*/*?/ $ '
                          share/doc/libnl-3-dev $ _

                          PS1='[$HOSTNAME%%.*:$PWD#$PWD%?/*/*/*?/] $USER% '
                          [host:share/doc/libnl-3-dev] user% _


                          If you want it to also replace $HOME with ~, something nastier is needed:



                          PS1='$(d=$PWD/#$HOME/"~";printf %s "$d#$d%?/*/*/*?/") $ '
                          ~/w/maemo $ cd sb2-pathmaps
                          w/maemo/sb2-pathmaps $ _

                          PS1='$(d=$PWD/#$HOME/"~";printf %s "[$HOSTNAME%%.*:$d#$d%?/*/*/*?/]") $USER% '
                          [host:w/maemo/sb2-pathmaps] user% _



                          All this should also work in bash, though bash has its own prompt escapes (eg. h for $HOSTNAME%%.*) and path shortening mechanism (with PROMPT_DIRTRIM).



                          Also, the nastier variant will be really nasty, because bash, unlike ksh93, will fork() a separate process for each $(...; printf ...) command substitution, even if it contains only builtins. This also holds true for pdksh derived shells, like mksh.




                          zsh has prompt escapes quite similar but not identical to tcsh:



                          zsh$ PS1='[%m:%3c] %n%# '
                          [host:share/doc/libnl-3-dev] user% _





                          share|improve this answer















                          In ksh93:



                          PS1='$PWD#$PWD%?/*/*/*?/ $ '
                          share/doc/libnl-3-dev $ _

                          PS1='[$HOSTNAME%%.*:$PWD#$PWD%?/*/*/*?/] $USER% '
                          [host:share/doc/libnl-3-dev] user% _


                          If you want it to also replace $HOME with ~, something nastier is needed:



                          PS1='$(d=$PWD/#$HOME/"~";printf %s "$d#$d%?/*/*/*?/") $ '
                          ~/w/maemo $ cd sb2-pathmaps
                          w/maemo/sb2-pathmaps $ _

                          PS1='$(d=$PWD/#$HOME/"~";printf %s "[$HOSTNAME%%.*:$d#$d%?/*/*/*?/]") $USER% '
                          [host:w/maemo/sb2-pathmaps] user% _



                          All this should also work in bash, though bash has its own prompt escapes (eg. h for $HOSTNAME%%.*) and path shortening mechanism (with PROMPT_DIRTRIM).



                          Also, the nastier variant will be really nasty, because bash, unlike ksh93, will fork() a separate process for each $(...; printf ...) command substitution, even if it contains only builtins. This also holds true for pdksh derived shells, like mksh.




                          zsh has prompt escapes quite similar but not identical to tcsh:



                          zsh$ PS1='[%m:%3c] %n%# '
                          [host:share/doc/libnl-3-dev] user% _






                          share|improve this answer














                          share|improve this answer



                          share|improve this answer








                          edited 3 mins ago

























                          answered 2 hours ago









                          mosvymosvy

                          10.6k11338




                          10.6k11338



























                              draft saved

                              draft discarded
















































                              Thanks for contributing an answer to Unix & Linux Stack Exchange!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid


                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.

                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function ()
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f513924%2fhow-to-produce-a-ps1-prompt-in-bash-or-ksh93-similar-to-tcsh%23new-answer', 'question_page');

                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Францішак Багушэвіч Змест Сям'я | Біяграфія | Творчасць | Мова Багушэвіча | Ацэнкі дзейнасці | Цікавыя факты | Спадчына | Выбраная бібліяграфія | Ушанаванне памяці | У філатэліі | Зноскі | Літаратура | Спасылкі | НавігацыяЛяхоўскі У. Рупіўся дзеля Бога і людзей: Жыццёвы шлях Лявона Вітан-Дубейкаўскага // Вольскі і Памідораў з песняй пра немца Адвакат, паэт, народны заступнік Ашмянскі веснікВ Минске появится площадь Богушевича и улица Сырокомли, Белорусская деловая газета, 19 июля 2001 г.Айцец беларускай нацыянальнай ідэі паўстаў у бронзе Сяргей Аляксандравіч Адашкевіч (1918, Мінск). 80-я гады. Бюст «Францішак Багушэвіч».Яўген Мікалаевіч Ціхановіч. «Партрэт Францішка Багушэвіча»Мікола Мікалаевіч Купава. «Партрэт зачынальніка новай беларускай літаратуры Францішка Багушэвіча»Уладзімір Іванавіч Мелехаў. На помніку «Змагарам за родную мову» Барэльеф «Францішак Багушэвіч»Памяць пра Багушэвіча на Віленшчыне Страчаная сталіца. Беларускія шыльды на вуліцах Вільні«Krynica». Ideologia i przywódcy białoruskiego katolicyzmuФранцішак БагушэвічТворы на knihi.comТворы Францішка Багушэвіча на bellib.byСодаль Уладзімір. Францішак Багушэвіч на Лідчыне;Луцкевіч Антон. Жыцьцё і творчасьць Фр. Багушэвіча ў успамінах ягоных сучасьнікаў // Запісы Беларускага Навуковага таварыства. Вільня, 1938. Сшытак 1. С. 16-34.Большая российская1188761710000 0000 5537 633Xn9209310021619551927869394п

                              Partai Komunis Tiongkok Daftar isi Kepemimpinan | Pranala luar | Referensi | Menu navigasidiperiksa1 perubahan tertundacpc.people.com.cnSitus resmiSurat kabar resmi"Why the Communist Party is alive, well and flourishing in China"0307-1235"Full text of Constitution of Communist Party of China"smengembangkannyas

                              ValueError: Expected n_neighbors <= n_samples, but n_samples = 1, n_neighbors = 6 (SMOTE) The 2019 Stack Overflow Developer Survey Results Are InCan SMOTE be applied over sequence of words (sentences)?ValueError when doing validation with random forestsSMOTE and multi class oversamplingLogic behind SMOTE-NC?ValueError: Error when checking target: expected dense_1 to have shape (7,) but got array with shape (1,)SmoteBoost: Should SMOTE be ran individually for each iteration/tree in the boosting?solving multi-class imbalance classification using smote and OSSUsing SMOTE for Synthetic Data generation to improve performance on unbalanced dataproblem of entry format for a simple model in KerasSVM SMOTE fit_resample() function runs forever with no result