linux常用特殊符号

在shell中常用的特殊符号罗列如下:

$ ${} $? $$ $*

$# $@ command{} [] [[]] () (())

  • ; 分号 (Command separator)

    在 shell 中,;主要用来在一行中运行一条或者多条指令。

  • ;; 连续分号 (Terminator)
    专用在 case 的选项,担任 Terminator 的角色。
    case “$fop” inhelp) echo “Usage: Command -help -version filename”;;version) echo “version 0.1” ;;esac

  • ‘string’ 单引号 (single quote) “string” 双引号 (double quote)
    被单引号用括住的内容,将被视为单一字串。在引号内的代表变数的$符号,没有作用,也就是说,他被视为一般符号处理,防止任何变量替换。 被双引号用括住的内容,将被视为单一字串。它防止通配符扩展,但允许变量扩展。这点与单引数的处理方式不同。

[root@localhost ~]# vartest=1234
[root@localhost ~]# echo '$vartest is good'
$vartest is good
[root@localhost ~]# echo $vartest
1234
[root@localhost ~]# echo "$vartest is good"
1234 is good
  • command 倒引号 (backticks) 用倒单引号来执行指令。
[root@localhost ~]# fdv=`ls`
[root@localhost ~]# echo $fdv
anaconda-ks.cfg Desktop Documents Downloads initial-setup-ks.cfg Music original-ks.cfg Pictures Public Templates Video
  • | 管道 (pipeline)

pipeline 是 UNIX 系统,基础且重要的观念。连结上个指令的标准输出,做为下个指令的标准输入。

[root@localhost ~]# who |wc -l
5
  • $相关指令

$ (dollar sign)
变量替换(Variable Substitution)的代表符号。
$*:引用script的执行引用变量,引用参数的算法与一般指令相同,指令本身为0,其后为1,然后依此类推。
$@ 与 $* 具有相同作用的符号,不过她们两者有一个不同点。
符号 $* 将所有的引用变量视为一个整体。但符号 $@ 则仍旧保留每个引用变量的区段观念。
$# :这也是与引用变量相关的符号,她的作用是告诉你,引用变量的总数量是多少。
$? :状态值 (status variable)
一般来说,UNIX(linux) 系统的进程以执行系统调用exit()来结束的。这个回传值就是status值。回传给父进程,用来检查子进程的执行状态。 一般指令程序倘若执行成功,其回传值为 0;失败为 1。

  • 小括号()
    ①命令组。括号中的命令新开一个子shell程序,括号中的变量为本地变量 ,不能够在脚本其他部分使用。括号中多个命令之间用分号隔开。
    ②命令替换。命令替换$(cmd)等同于cmd(这不是单引号,`是ESC下面的那个键) ,shell执行过程中发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其输出,再将此输出放到原来命令。例如:
[root@localhost tmp]# ls
fstab  functions  hellobash  issue  mytestdir  scripts
[root@localhost tmp]# echo $(ls)
fstab functions hellobash issue mytestdir scripts
[root@localhost tmp]# echo `ls`
fstab functions hellobash issue mytestdir scripts
[root@localhost tmp]# 
  • { } 大括号 (Block of code)

①拓展。对大括号中的文件名做扩展。在大括号中,不允许有空白,除非这个空白被引用或转义。拓展分为普通以逗号(,)进行拓展,如echo {a,b}.txt将间隔的各项内容均列出;已两个点(…)进行拓展,如echo {1…5}.txt自动补全1到5中间内容。

[root@localhost ~]# echo {a,b}.txt
a.txt b.txt
[root@localhost ~]# echo {1..5}.txt
1.txt 2.txt 3.txt 4.txt 5.txt
[root@localhost ~]# 

②内部组 。与小括号中的命令不同,大括号内的命令在当前shell运行,不会重新开子shell。括号内的命令间用分号隔开,最后一个命令后必须跟分号。{}的第一个命令和左括号之间必须要有一个空格。

  • [ ] 中括号

常出现在流程控制中,扮演括住判断式的作用。
[[ ]]
这组符号与先前的 [] 符号,基本上作用相同,但她允许在其中直接使用 || 与&& 逻辑等符号。

扫描二维码关注公众号,回复: 12272375 查看本文章
#!/bin/bash
read ak
if [[ $ak > 5 || $ak< 9 ]]
then
echo $ak
fi
  • & 后台工作

单一个& 符号,且放在完整指令列的最后端,即表示将该指令列放入后台中工作。
tar cvfz data.tar.gz data > /dev/null&

猜你喜欢

转载自blog.csdn.net/m0_52425873/article/details/113049103