
$
,还是转义字符之类的。例子:1~$
a=12test='this
is
a
$a
/$
`date`'echo
$test2this
is
a
$a
/$
`date`双引号它关闭shell中大部分的特殊符号,但是某些保留,比如
$
,转义字符
/(不包括/n,/t之类),反引号字符,单引号字符在双引号中时作为普通字符,不具有上面的功能作用。例子:01~$
a=12test=this
is
a
$a
/b
`date`echo
$test02this
is
a
12
/b
Thu
Mar
21
15:24:45
HKT
20130304~$
a=12test='this
is
a
$a
/b
`date`'echo
$test05'this
is
a
12
/b
Thu
Mar
21
15:32:09
HKT
2013'0607~$
a=12test=this
is
a
$a
/n
`date`echo
$test08this
is
a
12
/n
Thu
Mar
21
15:40:09
HKT
20130910~$
a=12test=this
is
a
$a
/$
`date`echo
$test11this
is
a
12
$
Thu
Mar
21
15:40:38
HKT
2013单引号、双引号用于把带有空格的字符串赋值给变量,如果没有单引号或双引号,shell会把空格后的字符串解释为命令,即把空格作为变量赋值的结束。1~$
a=13test1=this
is
a
$a
/b
`date`
echo
$test12is:
command
not
found特别注意:在shell脚本中进行变量的赋值时,变量名、等号和变量值之间不能有空格,否则就是上面一样的错误。反引号它的作用是命令替换,将其中的字符串当成shell命令执行,返回命令的执行结果,见上面的例子。反引号包括的字符串必须是能执行的命令,否则会出错。例子:1~$
a=12test=`this
is
a
$a
/b
`date``echo
$test2No
command
'this'
found,
did
you
mean:3Command
'thin'
from
package
'thin'
(universe)4this:
command
not
found5date符号$(
)的作用和反引号的一样,都是命令替换:1~$
echo
$(date)2Thu
Mar
21
15:54:15
HKT
2013反斜杠反斜杠一般用作转义字符,如果echo要让转义字符发生作用,就要使用-e选项,且包含转义字符的字符串要使用双引号1~$
echo
this
is
a
/n
test2this
is
a
/n
test3~$
echo
-e
this
is
a
/n
test4this
is
a5test反斜杠的另一种作用,就是当反斜杠用于一行的最后一个字符时,shell把行尾的反斜杠作为续行,这种结构在分几行输入长命令时经常使用。
1、首先在Linux系统中,使用echo $ 0来显示如下输出。
2、查看Linux系统上可用的所有shell,文件/ etc / shells中列出了Linux系统上可用的所有shell。 可以使用cat命令或更少的命令来查看文件的内容。
3、更改shell以使用另一个shell,要使用其他shell,只需输入其名称即可登录新shell。
4、永久更改Linux中的默认Shell,Linux允许您使用chsh命令更改默认Shell。 为您自己的登录用户更改默认Shell的最佳方法是,使用-s选项指定/ etc / shells文件中列出的Shell名称。
命令前加eval是使shell在执行命令行之前扫描它两次(先取$里的变量值,再赋值)。单引号和双引号都能关闭shell对特殊字符的处理。不同的是,双引号没有单引号严格,单引号关闭所有有特殊作用的字符,而双引号只要求shell忽略大多数,具体的说,就是①美元符号②反引号③反斜杠,这3种特殊字符不被忽略。 不忽略美元符号意味着shell在双引号内部也进行变量名替换。
双引号就是防止将变量名后面的字符串也当作变量名的一部分,你这命令里的单引号确实没必要加(但=前的双引号必须得加),我都试过了,加了也不影响,应该起个强调作用,个人敲命令的习惯。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)