Hello... and thank you in advanced for any help anyone can offer me
I'm hoping someone can explain what the leading $ is/means (i.e. $PS1, $HOME, etc).... I was having a discussion with someone and was trying to explain it... Which I felt like I came up kind of short with how well I did it.
I understand it's a special character and how to use it if I want to see the value of a variable or if I want to see the status of a command... I'm just unsure what kind of special character its categorized as or the definition of it's exact function.
I got home and googled it... I found plenty of explanations on how to use it but didn't find an adequate explanation of what it is and it's definition. It seems like every special character is well documented except the $... Could someone explain to me how it's categorized and it's extract definition?
Once again... thanks for reading this and any help anyone can offer
In the shell command language, an entity that stores values. There are three types of parameters: variables (named parameters), positional parameters, and special parameters. Parameter expansion is accomplished by introducing a parameter with the '$' character.
--
"Parameter expansion" is the way to get the value that is stored in a parameter ( for example a variable )
So for example if you have a variable foo and you give it the value bar
, then the variable foo contains the value bar.
Then, to get the content of the variable foo, you prepend a $ sign:
Last edited by Scrutinizer; 11-02-2017 at 12:28 PM..
The best way I like to remember it is that it is a marker to show a variable.
for instance this is my PS1
PS1 = (the following)
$LOGNAME is the variable LOGNAME that holds my login name
$HOST is the variable that holds the hostname of the server
$PWD is the variable that holds the current (print) working directory
so if I want to echo this PS1 out to see what it looks like I would use:
hope this helps
Also note that there are some special variables which are also introduced by "$":
$$ = process number of the currently running process
$* = all the arguments passed to a process (or subfunction of a script)
$@ = same as above*)
$# = number of all the arguments passed to a process (or subfunction of a script)
$! = process number of the background process invoked by the current process
$? = the return code of the last process executed
$1 ($2, $3, ...) = the first (second, third, ...) positional parameter passed to that process
I hope this helps.
bakunin
____________
*) "$*" and "$@" are basically the same, except when quoted. "$*" gives all arguments surrounded by spaces, "$@" gives all arguments surrounded by quotes. For instance, you call a script this way:
Inside the script you use "$*" and you get a single string: "one arg two arg three arg", whereas when you use "$@" you get three strings: "one arg" "two arg" "three arg".
$() Command substitution, similar to `` (two back quotes) but without some of the same problems. e.g.
Same page that Scrutinizer shared in post #2 but a bit afterward
Also in development situations, build utility make is often used, and some variables of interest there are:
As is often the case, fact-based questions are often best answered by searching, Google and Wikipedia are your friends.
Best wishes ... cheers, drl
Last edited by drl; 11-04-2017 at 09:16 PM..
Reason: Add make variables.
[...] As is often the case, fact-based questions are often best answered by searching, Google and Wikipedia are your friends.
Best wishes ... cheers, drl
Quote:
Originally Posted by bodisha
[...] I got home and googled it... I found plenty of explanations on how to use it but didn't find an adequate explanation of what it is and it's definition. It seems like every special character is well documented except the $... Could someone explain to me how it's categorized and it's extract definition?
Once again... thanks for reading this and any help anyone can offer
Hi,
on ksh
What does the following do?
grep -v "toolbox" $home_oracle/.profile >$home_oracle/.profile.$$ Thanks.
Please use CODE tags as required by forum rules! (3 Replies)
a='CASH$$A'
/usr/xpg4/bin/grep -F "$a" *.txt
It is not able to grep CASH$$A string as it contains special character $$.
I also tried with
/usr/xpg4/bin/grep -F '$a' *.txt
but still not working.
I have to assign CASH$$A to a variable and serach that variable..i dont want to search the... (8 Replies)
When editing a file, vi displays a special character as ^L. Can you tell me the escaped character to be used in awk? And can that escaped character be used in a regexp in both sed and awk? (7 Replies)
I have below line in a unix file, I want to delete one character after "Â".
20091020.Non-Agency CMO Daily Trade Recap Â~V Hybrids
The result should be :
20091020.Non-Agency CMO Daily Trade Recap  Hybrids
i dont want to use "~V" anywhere in the sed command or any other command, just remove... (1 Reply)
Hi,
In the shell script, i need to remove the special charater "\" with "\\". For example, i need to replace "D:\FXT\ABC.TXT" with "D:\\FXT\\ABC.TXT".
However, when trying to do something like , i get the below error :-
-->echo "D:\FXT\ABC.TXT" | sed -e 's#\#\\#g'
sed: 0602-404 Function... (7 Replies)
Hi
I am comparing 2 files (using diff command) with numerical data in them. In the output file I want only the differences which are in file2 but not in file1. Although I am getting the diffences i am also getting special characters in the output file which i do not want. Can somebody help me
For... (3 Replies)
Hi,
I am trying to unload file from a database. Which contains few lines with the character below. Rest of the data was unloaded appropriately.
a) What does this below character means?
b) How can i remove it,
I already have sed '/^$/d'
c) Will this effect the file by any means... (4 Replies)
Hello,
I've had a daemon go a little bit mental and create directories using somments from a config file. The end result is I've ended up with directories with names such as #, 5625), (5725 etc etc etc...
However, when I try and delete them I get syntax errors, ( not expected,
rmdir #... (2 Replies)
hey there
im a bit stuck on executing commands that include the special character '?'. can someone recommend a way on how i would be able to execute it?? i thought the glob function could be useful (still mite be) but upon entering the command
'ls pars?' it listed all the files in the... (1 Reply)