Bash Script: modify bash


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Bash Script: modify bash
# 1  
Old 10-22-2010
Bash Script: modify bash

Hey guys, i'm having trouble complete one of my bash scripts
I'm hoping to ---
1. Modify bash so that then the user types "ls" the command that is executed is "ls -al"
2. Modify the point of entry in bash when the user accesses it, moving the initial location to /var

I've somewhat done #2, but I can only do it to myself. I'm trying to create a script that creates a new user and than modifies the point of entry. But for some reason I cannot access the file. If I just make a script that does
Code:
 echo "cd /var" >> /home/eric/.bashrc

Then it will work.. however if i'm not doing it to my own account it will not work


And i'm totally lost on #1, what commands change commands? And what files store the commands?


Here is my partial code:
Code:
#!/bin/bash

#adds a user
echo "What is the name of the new user? "
read newUser

#creates the new user
sudo useradd -m -s /bin/bash $newUser

#modifies point of entry in bash
echo "cd /var/" >> /home/$newUser/.bashrc  
echo "Entry of bash has been changed to /var/"

#code of modify the 'ls' command to 'ls -al'
#code

I'd really appreciate some help. Thank you guys!
-eric
# 2  
Old 10-22-2010
For item 1, take a look at the Shell "alias" command.
# 3  
Old 10-22-2010
For item 2
Quote:
Originally Posted by LibRid
Code:
#modifies point of entry in bash
echo "cd /var/" >> /home/$newUser/.bashrc  
echo "Entry of bash has been changed to /var/"

Code:
#modifies point of entry in bash
sudo echo "cd /var/" >> /home/$newUser/.bashrc && echo "Entry of bash has been changed to /var/"

  • The sudo because you must be root to write to someone else's file.
  • The && to echo the message only if the preceeding command succeeded.
Hope this helps.
# 4  
Old 10-22-2010
Quote:
Originally Posted by frans
For item 2
Code:
sudo echo "cd /var/" >> /home/$newUser/.bashrc && ...

That doesn't work. If there's a way to do it, I hope someone posts it because it's stumped me for some time.

For example, this fails too:
Code:
sudo touch /tmp/a.txt        # Creates a file owned by root
sudo echo test >> /tmp/a.txt

bash: a.txt: Permission denied
# 5  
Old 10-22-2010
Code:
sudo sh -c "echo test >> /tmp/a.txt"

This User Gave Thanks to Scrutinizer For This Post:
# 6  
Old 10-22-2010
Thank you Scrutinizer.
I think I've seen that before.
But I never thought of it when I needed it.
# 7  
Old 10-25-2010
Thank you for your responses guys! I appreciate them all!

However, I still cannot find a way to append things to a different file to the new user I created for the .bashrc file.

After I create a new user I'd like to edit the new users .bashrc file but I cannot find a way to edit that file.

Code:
 sudo sh -c "echo alias ls='ls -al  >> /home/$newUser/.bashrc

Does not work

I mean, all of this will work perfectly if I was editing my own currently logged in user .bashrc file
But what about after I create a user?

In theory the script would
1. create a $newUser of your choise
2. create an alias in the .bashrc for the $newUser
3. modify the point of entry in bash in the .bashrc file for the $newUser

Again; it would work perfectly if the user used the script for himself. But that is not the way i'm hoping to do it.

So far this is my full script but it will only work for myself not for the $newUser

Code:
  #!/bin/bash


#Adds new user
echo "What is the name of the new user?"
read newUser

#creates a user
sudo useradd -m -s /bin/bash $newUser

#modifies point of entry in bash
echo "cd /var/"  >> /home/$newUser/.bashrc
echo "Entry of bash has been changed to /var/"

#adds an alias
echo "alias ls='ls -al' " >> /home/$newUser/.bashrc

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Sed, awk or another bash command to modify string with the content of another file

Hello everybody, I would like modify some strings using sed or another command line with the content file. For example: - {fqdn: "server-01" , ip: "server-01"} - {fqdn: "server-02" , ip: "server-02"} - {fqdn: "server-03" , ip: "server-03"} - {fqdn: "server-04" , ip: "server-04"} My... (4 Replies)
Discussion started by: dco
4 Replies

2. UNIX for Beginners Questions & Answers

In Bash shell - the ps -ef shows only the /bin/bash but the script name is not displayed

In Bash shell - the ps -ef shows only the /bin/bash but the script name is not displayed ? Is there any way to get the script names for the process command ? --- Post updated at 08:39 AM --- in KSH (Korn Shell), my command output shows the script names but when run in the Bash Shell... (3 Replies)
Discussion started by: i4ismail
3 Replies

3. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

4. Shell Programming and Scripting

Different behavior between bash shell and bash script for cmd

So I'm trying to pass certain json elements as env vars and use them later on in a script. Sample json: JSON='{ "Element1": "file-123456", "Element2": "Name, of, company written in, a very weird way", "Element3": "path/to/some/file.txt", }' (part of the) script: for s... (5 Replies)
Discussion started by: da1
5 Replies

5. Shell Programming and Scripting

Make a password protected bash script resist/refuse “bash -x” when the password is given

I want to give my long scripts to customer. The customer must not be able to read the scripts even if he has the password. The following command locks and unlocks the script but the set +x is simply ignored. The code: read -p 'Script: ' S && C=$S.crypt H='eval "$((dd if=$0 bs=1 skip=//|gpg... (7 Replies)
Discussion started by: frad
7 Replies

6. UNIX for Dummies Questions & Answers

Im new to bash scriping and i found this expression on a bash script what does this mean.

# check host value regex='^(||1|2|25)(\.(||1|2|25)){3}$' if ')" != "" ]; then if ]; then echo host $host not found exit 4 fi elif ]; then echo $host is an invalid host address exit 5 fi espeacailly the top regex part? ---------- Post updated at 06:58 PM ---------- Previous update was... (1 Reply)
Discussion started by: kevin298
1 Replies

7. Shell Programming and Scripting

Need to modify csv-file with bash script

Hi Guys, I need to write a script, that exports the "moz_places" table of the "places.sqlite"-file (firefox browser history) into a csv-file. That part works. After the export, my csv looks like this: ... 4429;http://www.sqlite.org/sqlite.html;"Command Line Shell For... (11 Replies)
Discussion started by: Sebi0815
11 Replies

8. Shell Programming and Scripting

how to make your bash script run on a machine with csh and bash

hi, i have a script that runs on bash and would like to run it on a machine that has csh and bash. the default setting on that machine is csh. i dont want to change my code to run it with a csh shell. is there any way i can run the script (written in bash) on this machine? in other words is there... (3 Replies)
Discussion started by: npatwardhan
3 Replies

9. Shell Programming and Scripting

passing variable from bash to perl from bash script

Hi All, I need to pass a variable to perl script from bash script, where in perl i am using if condition. Here is the cmd what i am using in perl FROM_DATE="06/05/2008" TO_DATE="07/05/2008" "perl -ne ' print if ( $_ >="$FROM_DATE" && $_ <= "$TO_DATE" ) ' filename" filename has... (10 Replies)
Discussion started by: arsidh
10 Replies

10. Shell Programming and Scripting

Why generate "ash and bash" different output for same bash script?

Hi, For my bash script, terminal with bash is generate an OK output and program works right. already, terminal with ash have "line 48: syntax error: Bad substitution" output and program don't work. :confused: (0 Replies)
Discussion started by: s. murat
0 Replies
Login or Register to Ask a Question