Unix 我一直在寻找这一点,以获得一种感觉,但我仍然感到困惑

Unix 我一直在寻找这一点,以获得一种感觉,但我仍然感到困惑,unix,command,character,symbols,Unix,Command,Character,Symbols,我对unix的$符号感到困惑。 根据定义,它声明它是由它后面的变量存储的值。我没有遵循定义-你能给我一个如何使用它的例子吗 谢谢你定义了这样一个变量: greeting=hello export name=luc echo $greeting $name 然后像这样使用: greeting=hello export name=luc echo $greeting $name 如果使用export,则表示变量将对子shell可见 编辑:如果要分配包含空格的字符串,必须使用双引号(“)或单引

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


谢谢你定义了这样一个变量:

greeting=hello
export name=luc
echo $greeting $name
然后像这样使用:

greeting=hello
export name=luc
echo $greeting $name
如果使用
export
,则表示变量将对子shell可见

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

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

对于shell sctipts,当您为变量赋值时,不需要使用$simbol。仅当您希望访问该变量的值时。 示例:

     VARIABLE=100000;
     echo "$VARIABLE";
     othervariable=$VARIABLE+10;
     echo $othervariable;
另一件事:如果使用赋值,则在=simbol前后不留空格

下面是一个很好的bash教程:

mynameis.sh:

     #!/bin/sh
     finger | grep "`whoami` " | tail -n 1 | awk '{FS="\t";print $2,$3;}'
指纹:打印所有已登录的用户示例结果:

    login   Name              Tty      Idle  Login Time   Office     Office Phone
    xuser   Forname Nickname  tty7     3:18  Mar  9 07:23 (:0)
    ...
grep:过滤包含给定字符串的行(在本例中,如果我们的登录名是xuser,我们需要过滤xuser)

打印我的登录名

tail-n1:只显示最后一行结果

awk脚本:打印结果的第二列和第三列:Forname,昵称

请编辑您的答案,使用
echo
printf
以避免混淆。
print
不是bash,它将打印一个文件而不是其参数。问题是-->编写一个输出您姓名的脚本。因此,如果您的姓名是“Joe Smith”,则脚本应回显“Joe Smith”“到屏幕上。命令行的答案是$cat tut2q1.sh/bin/bash#这是打印乔·史密斯姓名的脚本。echo'Joe Smith'$(我试着在putty中键入此命令,但在键入$cat blah blah之后,它给了我->符号,我甚至无法退出。sh请帮助me@Kovge问题是-->编写一个脚本,输出您的姓名。因此,如果您的姓名是“Joe Smith”,则脚本应回显“Joe Smith”命令行的答案是$cat tut2q1.sh#!/bin/bash#这是一个打印Joe Smith姓名的脚本。echo'Joe Smith'$(我曾尝试在putty中键入此命令,但在键入$cat blah blah之后,它给了我->符号,我甚至无法退出.sh请帮助我问题是-->编写一个脚本,输出您的名字。因此,如果您的名字是“Joe Smith”。脚本应回显“Joe Smith”命令行的答案是$cat tut2q1.sh#!/bin/bash#这是一个打印Joe Smith姓名的脚本。echo'Joe Smith'$(我曾尝试在putty中键入此命令,但在键入$cat blah blah之后,我甚至无法退出.sh。请帮助我将您的脚本作为问题的一部分。格式已丢失,很难判断它是什么样子。