Question about $*


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Question about $*
# 1  
Old 10-27-2014
Question about $*

Hi,

I have shell scrit code like below, but I have need few clarification on this. I have explained my understanding and doubts after this code.

Code:
abcd()
{
        print  $(date +%y%m%d:%H%M%S) "$*"
}

exec >> /root/file1.log 2>&1

My understanding is abcd() is a function it print the current date, but I dont understand what is the purpose of"$*"

exec >> will execute above print date abcd function and send the error and o/p under .log file

Please correct me if my understanding is wrong.

Last edited by stew; 10-27-2014 at 07:44 AM..
# 2  
Old 10-27-2014
$* makes ALL positional parameters to THIS (not the main shell but the actual) function available; man bash:
Quote:
Special Parameters
The shell treats several parameters specially. These parameters may only be referenced; assignment to them is not allowed.
* Expands to the positional parameters, starting from one. When the expansion is not within double quotes, each positional
parameter expands to a separate word. In contexts where it is performed, those words are subject to further word splitting
and pathname expansion. When the expansion occurs within double quotes, it expands to a single word with the value of each
parameter separated by the first character of the IFS special variable. That is, "$*" is equivalent to "$1c$2c...", where c
is the first character of the value of the IFS variable. If IFS is unset, the parameters are separated by spaces. If IFS is
null, the parameters are joined without intervening separators.
exec >> will NOT call above function but replace the current shell with the command given after having prepared all redirections. If no command is given, the current shell continues with the redirections applied.
# 3  
Old 10-27-2014
Sadly your function will fail because there is no builtin statement called print ...

It should be printf instead.

---------- Post updated at 11:19 AM ---------- Previous update was at 11:08 AM ----------
EDIT:

Using CygWin as a command line demo and using the inverted commas correctly...
Code:
AMIGA:~> abcd() { printf "$(date +%y%m%d:%H%M%S) $*"; }
AMIGA:~> abcd Hi, my name is Baz...
141027:111657 Hi, my name is Baz...AMIGA:~> _


Last edited by wisecracker; 10-27-2014 at 08:19 AM.. Reason: See above...
# 4  
Old 10-27-2014
Quote:
Originally Posted by wisecracker
Sadly your function will fail because there is no builtin statement called print ...
It certainly does, but only in a very few shells, one of those strange ksh things. And that's not the way you should be using printf, either. Never cram unknown text into the command string, use "%s" "string"
 
Login or Register to Ask a Question

Previous Thread | Next Thread

7 More Discussions You Might Find Interesting

1. AIX

df question

Hi, Can anyone please explain a little about df command. I have following question: Following example is showing % used as 4 where as total free blocks are 15.46 out of 16.00 MB blocks. df -m /test Filesystem MBblocks Free %Used Iused %Iused ... (5 Replies)
Discussion started by: itsabhi9
5 Replies

2. Hardware

question

How to add 3 moniters to a pc set up? (2 Replies)
Discussion started by: clicstic
2 Replies

3. Shell Programming and Scripting

question about wc

Hey my friend was asking me if i knew a way to cout how many different words in a file. I told him no not off hand, but i was thinking about it, and i started to wonder also. I imagine this is probably pretty simple im just missing something, I keep confusing my self with how you would compair and... (16 Replies)
Discussion started by: yodadbl07
16 Replies

4. UNIX for Dummies Questions & Answers

Question

hallo, ik heb hier een vraagje. hoeveel gebruikers kunnen er op 1 unix systeem. hopelijk antwoorden golle nu want ik moet da vinde voor school en die leerkracht zaagt. :p groetjes eu wacht wa was mijne nick ah ja vraagje groetjes vraagje ik kan geen engels dus antwoord liever in het... (1 Reply)
Discussion started by: vraagje
1 Replies

5. UNIX for Dummies Questions & Answers

mv question

Hello if I like to move file from defined directories system to new directory that not contained any directories system structure . But I like to create the same file system structure as source directory for example : I have 2 directories: foo1 and foo2 foo1 have directories and foo2 have... (2 Replies)
Discussion started by: umen
2 Replies

6. Solaris

vi question

Im trying to edit a 113 meg file in VI and i get the error TMP FILE TOO LARGE. Does someone know how to get around this? Thanks! (1 Reply)
Discussion started by: BG_JrAdmin
1 Replies

7. Programming

Yet Another Question

Now that I have getch() to work, I have yet another problem. BTW, thank you for answering these questions, I do ask a lot, only because I am eager to know, what is a board used for anyways :) Ok, he's the problem... #include iostream.h #include conio.h int main() { char movement; ... (2 Replies)
Discussion started by: mbolthouse
2 Replies
Login or Register to Ask a Question