我一直在寻找这个感觉,但我仍然感到困惑

时间:2013-03-09 08:57:00

标签: unix command character symbols

我对unix的$符号感到困惑。 根据定义,它表明它是由跟随它的变量存储的值。我没有遵循这个定义 - 你能不能给我一个如何使用它的例子?

感谢

2 个答案:

答案 0 :(得分:3)

您可以像这样定义一个变量:

greeting=hello
export name=luc

并使用如下:

echo $greeting $name

如果您使用export,则表示变量对子壳可见。

编辑:如果要分配包含空格的字符串,则必须使用双引号(“)或单引号(')引用它。双引号内的变量将被展开,而在单引号中它们将不会:

axel@loro:~$ name=luc
axel@loro:~$ echo "hello $name"
hello luc
axel@loro:~$ echo 'hello $name'
hello $name

答案 1 :(得分:1)

如果是外壳碎片。为变量赋值时,不需要使用$ simbol。仅当您要访问该变量的值时。 例子:

     VARIABLE=100000;
     echo "$VARIABLE";
     othervariable=$VARIABLE+10;
     echo $othervariable;

另一件事:如果使用赋值,则不会在= simbol之前和之后留下空格。

这是一个很好的bash教程: http://linuxconfig.org/Bash_scripting_Tutorial

mynameis.sh:

     #!/bin/sh
     finger | grep "`whoami` " | tail -n 1 | awk '{FS="\t";print $2,$3;}'

finger:打印所有登录的用户示例结果:

    login   Name              Tty      Idle  Login Time   Office     Office Phone
    xuser   Forname Nickname  tty7     3:18  Mar  9 07:23 (:0)
    ...

grep:过滤包含给定字符串的内容(在本例中,如果我们的loginname是xuser,我们需要过滤xuser) http://www.gnu.org/software/grep/manual/grep.html

whoami:打印我的登录名 http://linux.about.com/library/cmd/blcmdl1_whoami.htm

tail -n 1:仅显示最后一行结果 http://unixhelp.ed.ac.uk/CGI/man-cgi?tail

awk脚本:打印结果的第二和第三列:Forname,Nickname http://www.staff.science.uu.nl/~oostr102/docs/nawk/nawk_toc.html