Parameter substitution with alias


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Parameter substitution with alias
# 1  
Old 05-12-2009
Parameter substitution with alias

Hello,

in my .bashrc I tried to setup some aliases.
Code:
alias scp_cmd="scp -P 8888 $1 me@somehost:."

is supposed to copy a local file to somehost via scp. However it seems that the command line substitution does not work here. However this works:
Code:
alias lst="ls -l $1"

The above scp command can be handled like this which works for me:
Code:
scp_cmd() { scp -P 8888 $1 me@somehost:. ; }

I tried this on bash version:
GNU bash, version 3.2.39(1)-release (i386-redhat-linux-gnu)

I am curious why the first alias version doesn't work although the lst command seems to work well.
Thank you.

Best regards
Stephan
# 2  
Old 05-13-2009
aliases don't know about parameters. It's that simple. However, if you include a variable in an alias, it will expand it at the time of definition. So if $1 happens to expand to something (usually blank) that's what you will get when you invoke the alias.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to manage parameter in alias?

I make alias in bashrc file and typed it on prompt, alias tes='echo "$1"xx"$2"xxx"$3"xxxx' $ tes a b c xxxxxxxxx a b c what's happened to the shell here ?, and also, alias tes='echo "$3"xx"$2"xxx"$1"xxxx $ tes a b c xxxxxxxxx a b c anyone sincerely is to help me.. (2 Replies)
Discussion started by: abdulbadii
2 Replies

2. Shell Programming and Scripting

Parameter substitution is not working with sed

I am trying add a prefix variable(string) to command output. sed parameter substitution is not working. - I have found some issues on my end of testing,, please delete this thread for now. (1 Reply)
Discussion started by: kchinnam
1 Replies

3. Shell Programming and Scripting

Does awk have parameter substitution?

Can I specify a default value to a variable in AWK like BASH in one statement using parameter substitution? BASH example: argument=${$1-"default if empty"} (BASH) I know I can do: argument=$1; sub ( "^$", "default if empty", argument) (AWK) Mike (13 Replies)
Discussion started by: Michael Stora
13 Replies

4. UNIX for Dummies Questions & Answers

How to pass a parameter to an alias in ksh?

I want to do something like this: alias cd2="cd /data_saves/$(/opt/bin/util/getcustdb -i $@)" Where /opt/bin/util/getcustdb is an inhouse script to lookup customer db name based on a provided id number Then when I use the alias I can cd2 4567 and have it run "/opt/bin/util/getcustdb -i... (3 Replies)
Discussion started by: JourneyRider
3 Replies

5. UNIX for Dummies Questions & Answers

Unexpected command/filename substitution ( caused by alias?)

Hi: there is a shell script, with the name "foo", located in a bin directory. in the same time, there is an alias "foo='/path/bin/foo' ", just for convenience. in my home directory, there is a different script with name "foo" too. (a modified version.) while in my home directory, when I... (3 Replies)
Discussion started by: phil518
3 Replies

6. Shell Programming and Scripting

Passing parameter to script, and split the parameter

i am passing input parameter 'one_two' to the script , the script output should display the result as below one_1two one_2two one_3two if then echo " Usage : <$0> <DATABASE> " exit 0 else for DB in 1 2 3 do DBname=`$DATABASE | awk -F "_" '{print $1_${DB}_$2}` done fi (5 Replies)
Discussion started by: only4satish
5 Replies

7. Shell Programming and Scripting

Parameter substitution with##

Hi experts I want to use the parameter substitution in the bash with ## to get a=mfs1000 (not the "mfs" maybe other string and the length is not the same" I want to get 1000 any help? I don't know use which pattern I use echo ${a##*} It doesn't work Lei (5 Replies)
Discussion started by: yanglei_fage
5 Replies

8. UNIX for Dummies Questions & Answers

Create alias files (not alias commands)

If one: $ find -name 'some expression' -type f > newfile and then subsequently wants to create an alias file from each pathname the find command retrieved and the > placed within 'newfile', how would one do this? Ideally, the newly created alias files would all be in one directory. I am... (3 Replies)
Discussion started by: Alexander4444
3 Replies

9. Shell Programming and Scripting

Command that takes one parameter and then searches for the passed in parameter

Hi I am looking for a unix command or a small shell script which can takes one parameter and then searches for the passed in the parameter in any or all files under say /home/dev/ Can anyone please help me on this? (3 Replies)
Discussion started by: pankaj80
3 Replies

10. Shell Programming and Scripting

how do I make dynamic parameter names? Or get the value of a parameter evaluated twi

Say I write something like the following: var1=1 var2=2 for int in 1 2 do echo "\$var$int" done I want the output to be: 1 2 Instead I get something like: $var1 $var2 (2 Replies)
Discussion started by: Awanka
2 Replies
Login or Register to Ask a Question