首页 > 代码库 > shell体验二
shell体验二
shell命令一般分为内置(自带)和外来(除了自带的都是包括后来yum 安装的)
如何产看内置命令呢:$ man bash 1 (这里为什么加个 1是因为man手册的格式)
man 手册的组成
MANUAL SECTIONS
The standard sections of the manual include:
1 User Commands ##用户命令
2 System Calls ## 系统调用
3 C Library Functions #C函数库
4 Devices and Special Files #设备和特殊文件
5 File Formats and Conventions # 文件的格式和惯例
6 Games et. Al. #游戏
7 Miscellanea 杂项
8 System Administration tools and Deamons #系统管理工具
Distributions customize the manual section to their specifics, which often include additional sections.
一般区分内置的技巧:用 help 一般情况下 help command 如果是内置命令一般会给出简化的语法格式,足以应用。
$ help cd
常见命令解析:
echo (在屏幕上输出信息) 选项 -n (文件不换行显示) -e (可以识别\开头的特殊字符)
$ echo -n hello
hello[swallow@swallow ~]$ (由于不换行,所以和命令环境变量一起显示)
对比一下加不加 -e 的区别;
$ echo "a\nb\nc"
a\nb\nc
$ echo -e "a\nb\nc"
a
b
c
一般常见的特殊字符:\n 换行 \r 回车 \t 制表符(相当于按下tab按键)
shell变量的应用:(这里的实验是先定义一个变量var=abcABC123ABCabc)
1.返回变量的内容 ($var ${var})
$ echo $var
abcABC123ABCabc
$ echo ${var}
abcABC123ABCabc
2.返回长度 (${#var}) 就是在输入var前加入#
1. $ echo ${#var}
15
2. 查看长度也可以用用 wc -l (这里是大写的L,不要用c)
$ echo $var |wc -L
15
$ wc -c (这里的会多出一位。\n)
$ echo $var |wc -c
16
下面我们通过od 命令来看下 $ echo $var 都做了些什么?
od命令用于输出文件的八进制、十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符。
$ echo `echo $var|od -c`
0000000 a b c A B C 1 2 3 A B C a b c \n 0000020
这里多了一个\n 。所以wc 在统计字符的时候多了个一字符。
温习下:wc 的命令提示
-c, --bytes
print the byte counts
-L, --max-line-length
print the length of the longest line、
3. 用expr 自带的length方法
$ echo `expr length $var`
15
3.使用变量${}删除
匹配规则;
# 表示开头匹配最短
## 表示开头匹配最长(比较贪婪)
% 表示从结尾匹配最短
%% 表示从结尾匹配最长(比较贪婪)
举例;
$ echo ${var}
abcABC123ABCabc
$ echo ${var#a*c}
ABC123ABCabc
$ echo ${var##a*c}
$ echo ${var%a*c}
abcABC123ABC
$ echo ${var%%a*c}
[swallow@swallow ~]$
这里3和5是有区别的要注意。##从前面匹配的而%%是从和面匹配的。
4.使用变量${}替换
$ var=ABABAB
$ echo $var
ABABAB
$ echo ${var/A/a}
aBABAB
$ echo ${var//A/a}
aBaBaB
这里需要注意的是区别: / 是替换第一个字符。 //替换所有的字符
此外:在读系统脚本的时候有个困惑的地方:
例如:/etc/init.d/httpd 里面有几句类似的
httpd=${HTTPD-/usr/sbin/httpd}
查看手册:
${parameter:-word}
Use Default Values. If parameter is unset or null, the expansion of word is substituted. Otherwise, the
value of parameter is substituted.
此用法的意思是:如果变量没有赋值或为空,会返回word字符串并代替变量的值。
防止变量缺失导致异常,如果变量未定义则返回被用值(word)
本文出自 “赵雁生的linux之旅” 博客,请务必保留此出处http://12042068.blog.51cto.com/12032068/1893840
shell体验二