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