shell脚本——特殊符号

shell脚本中的特殊符号

# 井号 (comments)

(1) 在第一行

#!/bin/bash 自己申明解释器 #!/bin/python表示 python的解释器(一般有了这句话,没有指定解释器的话,会按照这句话定义的解释器进行执行)

一般通过这个句话,说明执行文件的时候按照要求的解释器进行执行

(2)作为注释

# This line is comments.

~ 登录帐户的 home 目录

~代表使用者的 home 目录:cd ~/,【也就是终端一打开最开始的路径,对于我的电脑来说是/home/uisee】;

注意:最好把/加上,如果没有添加/,会出现cd ~uisee 认为cd ~ 路径是 /home

~+ 当前的工作目录,这个符号代表当前的工作目录,她和内建指令 pwd的作用是相同的。

例如在目录/home/uisee/anaconda3 下面

bash: /home/uisee/anaconda3: Is a directory

~+ 当前的工作目录,这个符号代表当前的工作目录,她和内建指令 pwd的作用是相同的。

echo ~+  #得到当前的工作目录

~- 上次的工作目录,这个符号代表上次的工作目录。

echo ~- #得到上次的工作目录

; 分号 (Command separator)

在 shell 中,担任"连续指令"功能的符号就是"分号"。譬如以下的例子:

cd ~/backup ; mkdir startup ;cp ~/.* startup/.

;; 连续分号 (Terminator)

专用在 case 的选项,担任 Terminator 的角色。

. 逗号 (dot,就是“点”)

在 shell 中,使用者应该都清楚,一个 dot 代表当前目录,两个 dot 代表上层目录。

‘string’ 单引号 (single quote)

被单引号用括住的内容,将被视为单一字串。在引号内的代表变数的$符号,没有作用,也就是说,他被视为一般符号处理,防止任何变量替换。

$ 钱号(dollar sign)

变量替换(Variable Substitution)的代表符号。

vrs=123
echo "vrs = $vrs"  # 输出vrs = 123

另外,在 Regular Expressions 里被定义为 “行” 的最末端 (end-of-line)。这个常用在grep、sed、awk 以及 vim(vi) 当中。

注意在使用=号的时候是不能够添加空格的

$#

这是与引用变量相关的符号,主要作用是告诉你,引用变量的总数量是多少。比如sh ./*.sh 1 2 3 输出3,一共是3个变量

if [ $# -eq 5 ]; then

其中:

-eq等于
-ne不等于
-gt大于
-lt小于
-ge大于等于
-le小于等于

$?

功能描述:用于判断上一条命令执行的返回状态,如果这个变量的值为0,证明上一个命令正确执行,如果非0(具体是什么数字,需要自己进行指定),证明上一条命令没有执行成功。

$ + 数字

在 shell 中,会常见 $0、$1、$2,这样的符号,这是什么意思呢?

简单来说 $0 就是你写的shell脚本本身的名字,$1 是你给你写的shell脚本传的第一个参数,$2 是你给你写的shell脚本传的第二个参数,以此类推

$+`` 反引号 相当于 $()

命令行替换

例如:可以设变量a=ls

a=`ls` #变量a 就是直接在终端输入ls的返回值
currentDir=$(pwd) #这里就得到了当前路径

$* $@

其中$* 和 $@的作用基本上相同,只有在加上引号“$*”的时候,

$*:认为所有参数是一个整体

$@:认为每个参数是相互独立的

! + 数字

执行history中的历史命令

!+string

比如: !da 找到上一个命令最后一个以da开头的参数

得到目录下面文件夹的数量

ls -l | grep "^d" | wc -l

在shell中,如果需要将一条命令的结果返回给一个变量采用:

name=$(ls) #此时name就是直接在终端中按下ls的返回值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值