how to add new options in bash script


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users how to add new options in bash script
# 1  
Old 03-09-2012
how to add new options in bash script

what i want to be is that i would like to reinvent new options that have the same functionality as
...
-u is the same functionality of conv=ucase
and -l have the same functionality as conv=lcase...

is there a way that i can put these in my script so that
whenever i will typed in command line such as
Code:
dd if=file of=file.new -u

so that the file contents will become upper case ... Please need help....
Moderator's Comments:
Mod Comment please use code tags

Last edited by jim mcnamara; 03-09-2012 at 11:26 PM..
# 2  
Old 03-09-2012
For the amount of work you need to do the return is minimal. And there is no such thing as 'adding an option' without doing a lot of coding. Also, if you use /usr/bin/dd instead of just plain dd, you will get the old behavior, not what you want.

1. create a script that turns -l into conv=lcase and -u into conv=lcase
Code:
#!/bin/bash
cmd="$*" 
cmd= cmd=$( echo "$cmd" |  sed 's/dd /\/usr\/bin\/dd /'| sed 's/\-u/conv=ucase /' | sed  's/\-l/conv=lcase /' )
eval $cmd

Be sure to add execute permissions to you new script:
Code:
chmod +x nameofnewscript


2. edit your login .profile or .bashrc file to create an alias for the script
Code:
alias dd=/path/to/mydd.shl

3. log out and then back in, your new alias will be shown in the output of:
Code:
alias

As an aside I don't see why you'd want to go to all this trouble....
# 3  
Old 03-10-2012
ok thank you very much for your great help... i will try this later after my class... thanks and god bless
# 4  
Old 03-10-2012
Just for clarity here (there is absolutely no critical intent) - when using sed and there are a lot of escaped slashes I use a different separator - to make things easier to read.

Code:
#!/bin/bash
cmd="$*" 
cmd= cmd=$( echo "$cmd" |  sed 's/dd /\/usr\/bin\/dd /'| sed 's/\-u/conv=ucase /' | sed  's/\-l/conv=lcase /' )
eval $cmd

I would enter that as follows.

Code:
#!/bin/bash
cmd="$*" 
cmd= cmd=$( echo "$cmd" |  sed 's;dd ;/usr/bin/dd ;'| sed 's;\-u;conv=ucase ;' | sed  's;\-l;conv=lcase ;' )
eval $cmd

You can use any character that you want here, as I said just improves readability IMHO.Smilie

Regards

Dave
# 5  
Old 03-10-2012
Code:
I would use a function called dd() and call /bin/dd inside it after substituting the options

# 6  
Old 03-10-2012
I would do none of the above. IMO: There is no discernable purpose (other than homework which this now appears to be) to doing any of this.

There are instances for using an alias (or a function) when for security reasons you want to do something like flip off/on ftp or sftp without breaking anything. Not because you want to spend cpu cycles so you can type "-u" instead of "conv=ucase"

Does anybody remember trigraphs in C? They came about because some early keyboards could not create certain characters. There had to be a workaround. Doing this "entry workaround" kind of thing is not inherently purposeless.

Since I cannot tell if this is homework, I'm leaving the thread open. Another mod may not do that.
# 7  
Old 03-10-2012
i try this at home and theres a problem...
the name of my script is mydd
and i do the above like what it is said... but when i type in command line
bash@ubuntu$: dd if=mydd of=mydd.new -u
bash@ubuntu$: /path/to/mydd.sh file or directory not found


why is it??
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Running options in bash script

Hello UNIX & Linux Forums community! Long time Linux daily user hobbyist, new to shell scripting.... I'm working on a script that does all the "work" in one script, and makes calls to a second script to display info to the user via mostly expanding variables in heredocs. I'm contemplating... (6 Replies)
Discussion started by: Cody Learner
6 Replies

2. Shell Programming and Scripting

How to add missing date and time in a bash script?

Hi Again, I have a file that contains date and time for the past 2 hours. What i need is add missing date and time in a file. INPUT 2016-01-13 01:33 10 2016-01-13 01:31 10 2016-01-13 01:30 10 2016-01-13 01:29 10 2016-01-13 01:28 10 2016-01-13 01:27 10 2016-01-13 01:26 10 2016-01-13... (14 Replies)
Discussion started by: ernesto
14 Replies

3. Shell Programming and Scripting

Bash script - add/edit to file and save - sed?

I'm working on a script to execute a number of items. One being, editing particular files to add certain lines. I'm attempting to utilize sed, but, having issues when running from a bash script. Assistance is greatly appreciated. My example: sed -i '14 i\ # add these lines add these lines to... (5 Replies)
Discussion started by: Nvizn
5 Replies

4. UNIX for Dummies Questions & Answers

Is there a way to add padding to a bash shell script?

I'm grepping several lines and I want all of them to display with the same padding, is there a command to add whitespace before a line? (1 Reply)
Discussion started by: jcnewton13
1 Replies

5. Shell Programming and Scripting

Reading command line options from bash script

I have the following code and I am calling it using ./raytrac.bash -u and getting problems. For some reason opt_usage is still 0. opt_usage=0 iarg=0 narg=$# while (($iarg < $narg)) do (( iarg = $iarg + 1 )) arg=$argv usrInputFlag=`echo $arg | awk '/=/ {print 1}; ! /=/... (22 Replies)
Discussion started by: kristinu
22 Replies

6. Homework & Coursework Questions

how to create new options of "dd command" using bash script?

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Creating bash script the dd command and its new options (-l -U) -l options to lowercase contents of file -U... (2 Replies)
Discussion started by: katherineskye1
2 Replies

7. Shell Programming and Scripting

bash script to compile multiple .c files with some options

I'm trying to write a bash script and call it "compile" such that running it allows me to compile multiple files with the options "-help," "-backup," and "-clean". I've got the code for the options written, i just can't figure out how to read the input string and then translate that into option... (5 Replies)
Discussion started by: travis.batzer
5 Replies

8. UNIX for Dummies Questions & Answers

BASH: Change alias to script to add a task

Hi. I use an alias, "homeperm" as shorthand for curl -o. Since most of what I download via cUrl is graphic image files -- jpeg files -- I'd like to be able to change this alias to a script, or use it to invoke a function, which will not only download the file but date-stamp it using Exiv2 in... (4 Replies)
Discussion started by: SilversleevesX
4 Replies

9. Shell Programming and Scripting

Passing options to a bash script

I'm just not sure where to start looking into this. I want to be able to create switches for my script. Back in the day I'd make my scripts interactive...you know: echo "what report do you want" echo "A)boxes with errors" echo "B)boxes with more than 5 errors" echo "C)Service groups that have... (3 Replies)
Discussion started by: DeCoTwc
3 Replies

10. Shell Programming and Scripting

Bash - Add User script

Hey folks! I'm trying to work on a script that will add a user to the system. I have the complete script, but it's not working for me, and I'm not sure what to do. line 53: syntax error near unexpected token `0' ******************************************************** #!/bin/bash # # ... (4 Replies)
Discussion started by: niels.intl
4 Replies
Login or Register to Ask a Question