Shell的特殊字符
# 有意义的“#”符合
echo ${PATH#*:} # 参数替换,不是一个注释
echo $(( 2#101011 )) # 进制转换,可以是任意进制,不是一个注释
“.” .字符匹配,这是作为正则表达是的一部分,用来匹配任何的单个字符.
【例】bash$ cp /home/bozo/current_work/junk/* .
, 逗号链接了一系列的算术操作,虽然里边所有的内容都被运行了,但只有最后一项被返回.
【例】let "t2 = ((a = 9, 15 / 3))" # 设制变量 "a = 9" 和 "t2 = 15 / 3"
\ 转义字符,如\X 等价于"X"或'X'.
/ 文件名路径分隔符.或用来做除法操作.
: 空命令,等价于"NOP"(no op,一个什么也不干的命令).也可以被认为与shell 的内建命令(true)作用相同.
":"命令是一个 bash 的内建命令,它的返回值为0,就是shell 返回的true.
[root@localhost TeShuzifu]# cat Sixunhuan.sh
#!/bin/bash
#描述:
# 用":"写死循环
#作者:孤舟点点
#版本:1.0
#创建时间:-- ::
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
while :
do
date "+%Y%m%d-%H%M%S"
sleep
done
[root@localhost TeShuzifu]#
[root@localhost TeShuzifu]# cat Ifzhanweifu.sh
#!/bin/bash
#描述:
# 用if语句使用占位符":"。
#作者:孤舟点点
#版本:1.0
#创建时间:-- ::
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH if [ : ] ; #代表true
then : #什么都不做,引出分支。
date
sleep
fi
[root@localhost TeShuzifu]#
也可能用来作为注释行,虽然我们不推荐这么做.使用#来注释的话,将关闭剩余行的错误检查,所以可以在注释行中写任何东西.然而,使用:的话将不会这样.如:
1 : This is a comment thar generates an error,(if [ $x -eq 3] ).
":"还用来在/etc/passwd 和$PATH 变量中用来做分隔符.
[root@localhost TeShuzifu]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost TeShuzifu]#
$? 退出状态变量.$?保存一个命令/一个函数或者脚本本身的退出状态.
$$ 进程ID 变量.这个$$变量保存运行脚本进程ID
() 命令组.如:
(a=hello;echo $a)
注意:在()中的命令列表,将作为一个子shell 来运行.
在()中的变量,由于是在子shell 中,所以对于脚本剩下的部分是不可用的.
如:
a=
( a=; ) echo "a = $a" # a =
# 在圆括号中a 变量,更像是一个局部变量.
用在数组初始化,如:
1 Array=(element1,element2,element3)
{xxx,yyy,zzz...}
大括号扩展,如:
1 cat {file1,file2,file3} > combined_file
2 # 把file1,file2,file3 连接在一起,并且重定向到combined_file 中.
3
4 cp file22.{txt,backup}
5 # 拷贝"file22.txt" 到"file22.backup"中
一个命令可能会对大括号中的以逗号分割的文件列表起作用[1]. file globbing 将对
大括号中的文件名作扩展.
注意: 在大括号中,不允许有空白,除非这个空白是有意义的.
echo {file1,file2}\ :{\ A," B",' C'}
file1 : A file1 : B file1 : C file2 : A file2 : B file2 : C
{} 代码块.又被称为内部组.事实上,这个结构创建了一个匿名的函数.但是与函数不同的是,在其中声明的变量,对于脚本其他部分的代码来说还是可见的.如:
bash $
{
local a;
a= ;
}
bash中的local 申请的变量只能够用在函数中.
a=
{ a=; }
echo "a = $a" # a = (说明在代码块中对变量a 所作的修改,影响了外边的变量a)
Shell的特殊字符的更多相关文章
- Shell中特殊字符的含义
$0 这个程式的执行名字 $n 这个程式的第n个参数值,n=1..9 $* 这个程式的所有参数,此选项参数可超过9个. $# 这个程式的参数个数 $$ 这个程式的PID(脚本运行的当前进程ID号) $ ...
- Shell命令行中特殊字符与其转义详解(去除特殊含义)
特殊符号及其转义 大家都知道在一个shell命令是由命令名和它的参数组成的, 比如 cat testfile, 其中cat是命令名, testfile是参数. shell将参数testfile传递给c ...
- Shell入门教程:算术运算
Bash的算术运算有以下几种方法: 序号 名称 语法 范例 1 算术扩展 $((算术式)) r=$((2+5*8)) 2 使用外部程序 expr 算术式 r=`expr 4 + 5` 3 使用 $[] ...
- Linux之Shell的算术运算
在Bash的算术运算中有以下几种方法:名称 语法 范例算术扩展 $((算术式)) r ...
- Shell expr的用法 bc 命令 let命令
Shell expr的用法 bc 命令 let命令 数学运算 let命令 expr命令 bc命令 $(()) $[] http://www.80ops.cn/archives/245. ...
- shell算术运算与进制运算
(())与let是等效的 arithmetic expression type 与[是等效的 source与.是等效的 其实,Shell(这里是Bash)本身不具备处理浮点计算的能力,但是可以使用“b ...
- shell中的双引号,单引号,反引号
在shell中引号分为三种:单引号,双引号和反引号. 单引号 ‘ 由单引号括起来的字符都作为普通字符出现.特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释.单引号用于保持引号内所有字 ...
- (转)linux bash shell 入门教程
Shell Script(bash)简介 众所皆知地,UNIX上以小工具著名,利用许多简单的小工具,来完成原本需要大量软体开发的工作,这一点特色,使得UNIX成为许多人心目中理想的系统平台. 在众多的 ...
- shell学习笔记
shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...
随机推荐
- MySQL学习笔记——〇三 MySQL习题
在前面讲了MySQL的初步使用方法以后,在这里放出来一些案例来看看怎么做. 先看看database的结构,一共5个表 外键关系: class的cid是student的class_id的外键,teach ...
- java客房管理小项目,适合java小白练手的项目!
java客房管理小项目 这个客房管理小项目,适合java初学者练手.功能虽然不多,但是内容很齐全! 喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力!需要更多java学习资料的也可以私 ...
- hdu 1246
很久没有写题解了~因为懒(年纪大了就是脸皮厚,还有脸说) 这道题今天花了很长时间去推,一开始以为是规律题,没推出来,直接模拟也TLE了,接着考虑实在是没思路,看了题解. 思路大概就是这样: 先上代码( ...
- 吴裕雄--天生自然 pythonTensorFlow自然语言处理:Seq2Seq模型--训练
import tensorflow as tf # 1.参数设置. # 假设输入数据已经用9.2.1小节中的方法转换成了单词编号的格式. SRC_TRAIN_DATA = "F:\\Tens ...
- Xcode7 HTTP请求问题
问题: “Application Transport Security has blocked a cleartext HTTP (http://) resource load since it is ...
- ubuntu19.10——snap错误has install-snap change in progress
使用软件商店安装时遇到问题 snap has install-snap change in progress 原因是之前的安装错误终止,使得现在的安装无法进行,解决方案: 终端输入: snap cha ...
- 两种访问接口的方式(get和post)
跨机器.跨语言的远程访问形式一共有三种:scoket发送数据包.http发送请求.rmi远程连接: http发送请求方式:分为post和get两种方式 importjava.io.IOExceptio ...
- GB35658较796新增检测项部标平台
GB35658较796新增检测项部标平台总共有113项,总结归类如下:1 报表导出 支持excel格式的报表导出 对查询.统计报表提供excel格式的报表导出 必选: 2 ...
- iTOP4412开发板-使用buildroot搭建最简单的linux
本文档介绍的是使用buildroot搭建最简单的linux文件系统,Buildroot是Linux平台上一个构建嵌入式Linux系统的框架.整个Buildroot是由Makefile脚本和Kconfi ...
- Automatic Setup of a Humanoid
The humanoid animation option in Unity 4 makes it possible to retarget the same animations to differ ...