What is the meaning the $ special character?

 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers What is the meaning the $ special character?
# 8  
Old 11-05-2017
Hi, Aia.

Yes, I noted that. His title was What is the meaning the $ special character?

He also asked ...explain to me how it's categorized and it's extract [sic] definition?

He did not restrict the meaning to any special instance.

I appreciate that he used Google, but I think he may not have had enough time to internalize the information. I know that I don't always understand something just after I read it.

For example from the Wikipedia article: In most shell scripting languages, $ is used for interpolating environment variables, special variables ... -- it seems hard to imagine an alternate definition.

Thanks for the comment, it's always useful to have feedback and more than one set of dispassionate eyes looking over things ... cheers, drl
This User Gave Thanks to drl For This Post:
# 9  
Old 11-05-2017
Quote:
Originally Posted by drl
[..]
I know that I don't always understand something just after I read it.

For example from the Wikipedia article: In most shell scripting languages, $ is used for interpolating environment variables, special variables ... -- it seems hard to imagine an alternate definition.
[..]
Indeed, I was looking at that on the wiki page and reread it several times and still do not know what it means.

Full quote:
Quote:
$ is used for interpolating environment variables, special variables, arithmetic computations and special characters, and for performing translation of localised strings
# 10  
Old 11-05-2017
Hi, Scrutinizer.
Quote:
Originally Posted by Scrutinizer
Indeed, I was looking at that on the wiki page and reread it several times and still do not know what it means.

Full quote:
I think we know what most of that means, such as in:
Code:
$ echo $a $SHLVL $(( 2+2 ))
hi 1 4

which also illustrates the use of $ as part of the prompt.

Do we agree on that much, or have I misunderstood you? ... cheers, drl
# 11  
Old 11-06-2017
Hi drl, yes of course we know what they meant to say, but not thanks to that wiki content.

I was just trying understand the words "interpolating" and "performing translation of localised strings" in that sentence, which I think are either wrong, obfuscating or needlessly complicated and most certainly will make someone new to the subject glaze over..
This User Gave Thanks to Scrutinizer For This Post:
# 12  
Old 11-06-2017
The word interpolate is one of many English words with several meanings. I certainly agree that the mathematical meaning of interpolate ("insert an intermediate value or term into a series by estimating or calculating it from known surrounding values") makes no sense in this context. And this is how interpolate is most frequently used in this forum.

But, one of the other meanings of interpolate ("alter (a book or text) by insertion of new material") fits what parameter expansion, arithmetic expansion, command substitution, and special variable expansion (each of which are introduced by a leading $ in the shell command language) do if you consider shell commands to be text.
# 13  
Old 11-06-2017
Hi, Don.
Quote:
Originally Posted by Don Cragun
... I certainly agree that the mathematical meaning of interpolate ("insert an intermediate value or term into a series by estimating or calculating it from known surrounding values") makes no sense in this context. And this is how interpolate is most frequently used in this forum ...
I searched for interpolate in the forum, and got 56 hits. Looking at a sample of 10 (trying to be objective), I found 9 referred to variables, 1 to the math ... cheers, drl

---------- Post updated at 09:01 ---------- Previous update was at 08:43 ----------

Hi.

Apologies for the long post. Here is a sample of results of a Google search:
Code:
Mon Nov  6 05:36:09 CST 2017

The "$" as dereference, interpolation, expansion operator.

-----

Google search:
compare interpolate dereference expand
( I added "-perl", got 143K hits )

-----

In Unix shell scripting and in utilities such as Makefiles, the
dollar sign "$" is the dereference operator, used to translate
the name of a variable into its contents, and is notably absent
when assigning to a variable.

In various languages, prefixes are used in identifiers, known as
sigils. These are not unary operators - syntactically they are
lexically part of the identifier, and have different semantics,
such as indicating the data type of the identifier - but are
syntactically similar to the dereference operator and can be
confused with it. For example, in a shell script $FOO is the
dereference operator $ applied to the variable FOO, while in Perl
$foo is a scalar variable called foo. 

https://en.wikipedia.org/wiki/Dereference_operator

-----

In computer programming, string interpolation (or variable
interpolation, variable substitution, or variable expansion) is
the process of evaluating a string literal containing one or more
placeholders, yielding a result in which the placeholders are
replaced with their corresponding values. It is a form of simple
template processing[1] or, in formal terms, a form of
quasi-quotation (or logic substitution interpretation). String
interpolation allows easier and more intuitive string formatting
and content-specification compared with string concatenation.[2]

https://en.wikipedia.org/wiki/String_interpolation

-----

Strings with single quotes (') are literal strings, meaning there
are no special characters; every character in the string will
output as itself. Strings with double quotes (") in powershell
will expand variables and escape characters inside the string;
this is referred to as interpolation.

http://www.powershellish.com/blog/2014-12-09-strings-expansion

-----

The second aspect of shell variable syntax worth noting is the
use of the dollar sign when referring to a variable ... use
the dollar sign to get the value of the variable.

bash Cookbook: Solutions and Examples for bash Users
By Carl Albing, JP Vossen, Cameron Newham

-----

bash derives much of its programming functionality from shell
variables. We've already seen the basics of variables. To recap
briefly: they are named places to store data, usually in the form
of character strings, and their values can be obtained by
preceding their names with dollar signs ($). Certain variables,
called environment variables, are conventionally named in all
capital letters, and their values are made known (with the export
statement) to subprocesses.

If you are a programmer, you already know that just about every
major programming language uses variables in some way; in fact,
an important way of characterizing differences between languages
is comparing their facilities for variables.

The chief difference between bash's variable schema and those of
conventional languages is that bash's places heavy emphasis on
character strings. (Thus it has more in common with a
special-purpose language like SNOBOL than a general-purpose one
like Pascal.) 

https://www.safaribooksonline.com/library/view/learning-the-bash/1565923472/ch04s02.html

From my perspective, there is a lot of information about the use of a $, and if the OP was referring to its use in bash, there are many places that explain it, as well as in many books.

I tend to think of the variables as a location in memory that has the string that is the name of variable as its content. Along with that, there is a link (pointer, etc., method unspecified) that allows us to view and change that value, and we can see that value with a $.

My recollection is that when this level of detail came up in class, I told the students my visualization. I think that usually satisfied the more technical, curious students.

Best wishes ... cheers, drl
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Special character $$

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)
Discussion started by: big123456
3 Replies

2. Shell Programming and Scripting

Grep -F for special character

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)
Discussion started by: millan
8 Replies

3. Shell Programming and Scripting

Vi special character

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)
Discussion started by: dmesserly
7 Replies

4. Solaris

What is the meaning of the character x in /etc/shadow file?

what is the meaning of the character x in /etc/shadow file which is lying in the encrypted password column.. i need this urgently (4 Replies)
Discussion started by: DJ2176
4 Replies

5. Shell Programming and Scripting

Deleteing one character after an special character

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)
Discussion started by: mohsin.quazi
1 Replies

6. Shell Programming and Scripting

Special character \

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)
Discussion started by: amit_arora
7 Replies

7. Shell Programming and Scripting

Special character in Diff

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)
Discussion started by: ashu_r2001
3 Replies

8. Shell Programming and Scripting

special character

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)
Discussion started by: tostay2003
4 Replies

9. UNIX for Dummies Questions & Answers

Special meaning characters in dir names

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)
Discussion started by: JWilliams
2 Replies

10. Programming

special character ?

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)
Discussion started by: mile1982
1 Replies
Login or Register to Ask a Question