Visit Our UNIX and Linux User Community


PS1 challenge


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting PS1 challenge
# 1  
Old 10-21-2010
PS1 challenge

Ok then i Have a challenge for you :

Give me PS1 so that it always display the least 2 levels of directory
(except if i am above of course)

I want it this way :

so if i go to

Code:
/
/home/
/home/user
/home/user/whatever
/home/user/whatever1/whatever2

my PS1 should respectively show the following :

Code:
ctsgnb@challenge:/ #
ctsgnb@challenge:/home #
ctsgnb@challenge:/home/user #
ctsgnb@challenge:/.../user/whatever1 #
ctsgnb@challenge:/.../whatever1/whatever2 #

i care about the /... if i go lower than 2 level !
# 2  
Old 10-21-2010
This would be easier: While $PWDx has 3 slashes, take #?*/ off and put ...
Code:
ctsgnb@challenge:/ #
ctsgnb@challenge:/home #
ctsgnb@challenge:/home/user #
ctsgnb@challenge:.../user/whatever1 #
ctsgnb@challenge:.../whatever1/whatever2 #

something like
Code:
$(
pwdx="$PWD"
while [ "${pwdx#/*/*/" != "$pwdx" ]
do
 pwdx="${pwdx#/*}"
done
if [ "$pwdx" != "$PWD" ]
then
 pwdx=..."$pwdx"
fi
echo "$pwdx"
)

of course, quoting has to carry this all into PS1 for run time evaluation.

Last edited by DGPickett; 10-21-2010 at 05:16 PM..
# 3  
Old 10-21-2010
Easier ? where would be the fun ?
Come on guys i know you are far skilled enough to give a working solution ! Smilie
# 4  
Old 10-21-2010
Just add the slash, becasue, I found it was not easier, it just saves you a byte of precious line space, you ingrate! Smilie
# 5  
Old 10-21-2010
I long for a Scru1Liner solution proposal ... and see if he can do better Smilie
# 6  
Old 10-21-2010
I should use semicolons?
You think the world pays for byte count or maintainability?
This is no fork no exec solution!
# 7  
Old 10-21-2010
I think that the fact of doing a

Code:
cd any_dir

should not use 100% of CPU or Memory Smilie

To tell you the truth, i don't have the solution, i don't even know whether it is possible or not.Smilie

Previous Thread | Next Thread
Test Your Knowledge in Computers #532
Difficulty: Medium
UTF-8 uses a fixed number of bytes to encode characters.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

PS1 - change

Hello I am attempting to generate a bash scrip that prompts me at loggin to change my PS1 - However, I am running into an issue w/ the code. #!/bin/bash #the point of this script is to that it automates and changes my prompts every day msg1="What do you feel like adding today :" echo... (11 Replies)
Discussion started by: D'go
11 Replies

2. Shell Programming and Scripting

Anyone like a challenge?

I have searched through google, and this forum to try and find the answer, but alas, nothing quite hits the whole answer. I am trying to read the last line (or lines) of some log files. I do this often. The files are named sequentially, using the date as part of the file name, and appending... (18 Replies)
Discussion started by: BatterBits
18 Replies

3. Shell Programming and Scripting

Changing PS1

I have coded PS1 as shown, producing the following result when writing on the command line ┌─ cdl └──╼ make tracepdf2d If I make an error in the command an ✗ is printed ┌─ ✗ cdl └──╼ ls-a ls-a: command not found My problem is that if I just press enter, I do not want to have the... (3 Replies)
Discussion started by: kristinu
3 Replies

4. Shell Programming and Scripting

Help with Export PS1 I think :-0

I am 100% new to Unix and trying to learn. This is my first time even touching a script in Unix. We have the following variable script that I am trying to run.... ################################## ###### variable test### ################################## Hostname=`hostname`... (3 Replies)
Discussion started by: LRoberts
3 Replies

5. UNIX for Dummies Questions & Answers

PS1 prompt

please advise what's wrong with this command ? PS1="`hostname`:`who am i | cut -d " " -f1`:>>" trying to make the PS1 prompt look like : machine_name:username:>> thank you (4 Replies)
Discussion started by: venhart
4 Replies

6. Shell Programming and Scripting

To change PS1 for every one second

I want to change the PS1 prompt with current time. I want the PS1 to update for every one second. I write a Script. PS1='\T' but it updates after i press enter key.I want to update without pressing enter key. can any one help me? (0 Replies)
Discussion started by: lakshmananindia
0 Replies

7. UNIX for Dummies Questions & Answers

PS1 in ksh

I know this question has come up before but I couldn't find any documentation on ksh here. I'm trying PS1="`whoami`@`hostname`:`pwd`> " export PS1 in ksh but the working directory sticks at the home directory. How do I fix that? Also, how do I make the prompt bold in korn? (3 Replies)
Discussion started by: rein
3 Replies

8. UNIX for Dummies Questions & Answers

PS1 problem

can anyone tell me how to change the $ prompt by calling a variable. Say for example i called a var 'enable' I and would like the $ prompt to change to a phrase like 'my prompt' any help would be great (1 Reply)
Discussion started by: pg080394
1 Replies

9. UNIX for Advanced & Expert Users

PS1 variable

I want to set my prompt to something more descriptive than a plain old $, so I set the PS1 variable as such: PS1="" Which changes the prompt correctly, but when I change directories, it does not update the prompt. So I tried this: PS1="`pwd`>" I get the same results when changing... (2 Replies)
Discussion started by: dangral
2 Replies

10. UNIX for Dummies Questions & Answers

I changed PS1 and now ....

Hello I am using Debain Potato and I changed the PS1. When I log in locally everythink is fine, except that when I enter a long row without hitting enter, then it word wraps automatically. And it does it not at the end of the row, it does it in the middle of the row! It also does not writes... (7 Replies)
Discussion started by: Fwurm
7 Replies

Featured Tech Videos