shell脚本知识(一) 基本知识预备

1、shell脚本一般以#!开头。

2、printf: printf “%-5s  %-10s  %-4s\n” No Name Mark。%-5s指明一个格式为左对齐且宽度为5的字符串替代(-表示左对齐),如果不用-指定对齐方式,字符串则采用右对齐。宽度指定了保留给某个变量的字符数。对Name而言,保留宽度是10。

3、获得字符串的长度:var=1213434545345     length=$(#var) 可以获得字符串长度,存放在length中。 获得使用哪种shell:echo $SHELL 或者 echo $0。 echo $UID 为0则为超级用户。

4、shell中数学运算:可以利用let、(())和[ ] 执行基本算数操作,高级操作使用 expr和bc。 n1=10 n2=12    自加:let n1++    result=$[ n1+n2 ]   retult = `expr 3+4`  result=$(expr $n1 +3)

5、文本描述符。 0 —— stdin  (标准输入)

1 —— stdout (标准输出)

2 —— stderr (标准错误)

使用 echo $? 可以打印退出状态。

错误重定向: ls + 2> out.txt      将错误信息输出到out.txt中。

6、数组定义: array_var=(1 2 3 4 5 )  或者 array_var[0] = "test1"。 echo ${array_var[*]} 输出所有的值,echo ${array_var[2]} 输出第二个 值。

7、获取终端信息。 获取终端的行数和列数: tput cols

tput lines

光标移动懂啊方位(100,100)处: tput cup 100 100

获得时间:date,日期格式如下:

$ date "+%d %B %Y"

09 February 2015

8、脚本调试。

使用选项-x,启动跟踪调试shell脚本:

$ bash -x script.sh

-x标志能打印出所有执行的每一行命令及当前状态。输出到stdout。

可以在脚本中启用或禁止调试打印。

set -x :在执行时显示参数和命令

set +x:禁止调试

set -v:当前命令进行读取时显示输入

set +v:禁止打印输入。

9、函数和参数。

定义函数:

function fname()

{

statements;

}

或者

fname()

{

statements;

}

只要使用函数名就可以调用某个函数:

$ fname ;

fname arg1 arg2 ;传递参数

fname()

{

echo $1, $2; #访问参数1和参数2

echo “[email protected]”  ; 以列表形式一次性打印所有参数  类似有“$*”

}

$1是第一个参数

$2是第二个参数

$n是第n个参数

"[email protected]"  被扩展成“$1” "$2" "$3"等。

10、利用子shell生成一个独立的进程

子shell本身就是独立进程。可以使用()操作符来定义一个子shell:

pwd;

(cd /bin;ls)

pwd;

子shell中执行时,不会对当前shell有任何影响,所有改变仅限于子shell内。如上例子中两个pwd命令输入内容一致。

11、read 读取键盘命令。

读取n个字符并存入变量var:   read  -n  2 var

不回显的方式读取密码: read -s var

显示提示信息: read -p “Enter input:”  var

两秒内键入的字符串读入var:read  -t  2 var

12、-gt :大于; -lt :小于;  -ge:大于或等于;  -le :小于或等于;  -a:逻辑与 ;  -o : 逻辑或。 -ne 不等于, -eq 等于。

[ $var1 -ne 0  -a  $var2 -gt 2 ]  var1不等于0,并且var2大于2。

系统文件相关测试:

[  -f $file_var  ] ;如果给定的变量包含正常文件路径或文件名,返回真

[  -x $var  ] :如果变量包含的文件可执行,为真

[  -d $var  ]: 包含目录为真。

[  -e $var  ]:包含的文件存在,为真

[  -c $var  ]:包含字符设备,为真

[  -b $var  ]:块设备,为真

[  -w $var  ]:可写,为真 ; -r可读为真; -L 符号连接,为真。

字符串比较:

[[  $str1  =  $str2  ]] :相等返回真。  !=  不等返回真。  >  大于返回真 ,  <    小于返回真。

[[  -z  $str1  ]]  :空字符串返回真  ,  -n  非空返回真。

时间: 2024-11-13 05:04:55

shell脚本知识(一) 基本知识预备的相关文章

学习 shell脚本之前的基础知识

转载自:http://www.92csz.com/study/linux/12.htm  学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位甚至用shell脚本的编写能力来衡量这个linux系统管理员的经验是否丰富.笔者讲这些的目的只有一个,那就是让你认真对待shell脚本,从一开始就要把基础知识掌握牢固,然后要

shell 脚本执行和基础知识

当我们给予shell脚本执行的权限后,就可以测试程序了,假设shell脚本文件为hello.sh放在/root目录下.下面介绍几种在终端执行shell脚本的方法:1.切换到shell脚本所在的目录,执行: [[email protected] home]# cd /root/[[email protected] ~]# ./hello.shhello guys!welcome to my Blog:linuxboy.org! 2.以绝对路径的方式执行: [[email protected] ~]

shell脚本编程需要的知识

关于shell的预备知识 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁即用户界面.用户把指令传给shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务. 脚本第一行: #!/bin/bash.       #! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序. 使用jobs可以查看当前shell中后台执行的任务.用fg

学习shell脚本之前的基础知识(一)(学习记录帖)

记录命令历史:我们敲过的命令,linux会有记录,保存在家目录的.bash_history文件中.(备注:只有用户正常退出当前shell时,当前命令才会保存在.bash_history文件中) “  !”的常见应用:(1)!!表示执行上一条支流:(2)!n  (n表示数字),表示执行历史记录中的第n条命令:(3)!字符串   例如 !ta 表示执行命令历史中最近的已ta开头的命令: 支流和文件名补全:按tab键可帮助补充指令.路径或文件名:连按两次tab键,系统可列出所有的指令或文件: 别名:a

Bash Shell脚本编程-基础特性知识

Bash Shell的基础特性: 命令历史: history:shell内建命令 环境变量HISTFILE定义用户退出命令历史列表的存储位置 #echo $HISTFILE /root/.bash_history # echo $HISTFILESIZE   HISTFILE指向的文件持久留存的历史命令条目 1000 # echo $HISTSIZE           当前bash进程所留存的历史命令条目数 1000 # history -d 123            删除历史列表中的第1

第13章 &nbsp; 学习 shell脚本之前的基础知识

1. 设置环境变量 HISTSIZE , 使其能够保存10000条命令历史.  vim /etc/profile  把 HISTSIZE=1000 改为 HISTSIZE=10000 2. 为什么如果这样设置PS1 (PS1="[\[email protected]\h \W]\$ ")  显示的结果和我们预想的不一样,那要如何设置才能恢复原来默认的?  应该是 PS1='[\[email protected]\h \W]$  '     (要用单引号) 3. 想办法把当前目录下的文件

学习shell脚本之前要掌握的知识

学习SHELL脚本之前的知识 1)记录命令历史 我们敲过的命令,linux是会有记录的,预设可以记录1000条历史命令.这些命令保存在用户的家目录中的.bash_history文件中.有一点需要你知道的是,只有当用户正常退出当前shell时,在当前shell中运行的命令才会保存至.bash_history文件中. 与命令历史有关的有一个有意思的字符那就是"!"了.常用的有这么几个应用:(1)!! (连续两个"!"),表示执行上一条指令:(2)!n(这里的n是数字),

Linux shell脚本基础学习详细介绍(完整版)二

详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续. Linux shell脚本基础已经被分成好几个部分了,这里对控制流程的内容也就马上讲完了,这是最后一部分关于here document,这里举例稍微有点复杂,我们慢慢来分析这个复杂Linux shell脚本. 6. Here documents 当要将几行文字传递给一个命令时,here docu

Shell脚本链接整理

学习 shell脚本之前的基础知识:http://www.92csz.com/study/linux/12.htm shell脚本全面学习:http://blog.chinaunix.net/uid-9078183-id-2436460.html Shell脚本编程的常识:http://www.cnblogs.com/ebusi/archive/2011/02/09/1950422.html 经典shell 脚本实例:http://wenku.baidu.com/link?url=m66AyO7

shell脚本的函数介绍和使用案例

#前言:今天我们来聊聊shell脚本中的函数知识,看一下函数的优势,执行过程和相关的使用案例,我们也来看一下shell和python的函数书写方式有什么不同 #简介 1.函数也具有别名类似的功能 2.函数是把程序里多次调用相同的代码部分定义成一份,然后给这份代码定义个名字,如果出现重复的就调用就行了 #函数的优势 1.把相同的程序段定义成函数,可以减少整个程序的代码量 2.可以让程序代码结构更清晰 3.增加程序的可读.易读性.以及管理性 4.可以实现程序功能模块化,不同的程序使用函数模块化 #语