Location: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Posts: 2,288
Thanks Given: 430
Thanked 480 Times in 395 Posts
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
[..]
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
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:
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.
Location: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Posts: 2,288
Thanks Given: 430
Thanked 480 Times in 395 Posts
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.
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)