本文共 2040 字,大约阅读时间需要 6 分钟。
shell脚本的用途:
shell脚本编写格式:
如需内容注释行首加#即可
例如:#/bin/bash
#testcat /etc/passwd shell脚本执行方法:shell变量:
变量是指用一个熟悉的,或者意义明显的单词、字节来给变量另起一个名字,达到每次使用变量名就可以是其本身作用发挥的功能 shell变量命名法则:shell赋值 x=y
例如:
[root@centos6 ~]:NAME=`hostname` [root@centos6 ~]:echo $NAME centos6.localdomain
hostname本身是一个命令,功能是可以打印出主机名,这里给hostname定了一个变量为NAME ,所以打印 $NAME 就可以直接显示出主机名了。
这里注意因为hostname本身是一个命令,所以定变量的时候需要用``引起来,才能够辨别出命令。 同样的方法也可以用变量来定义另外一个变量,这个时候就需要用""引起来,是可以辨别变量的,同时引号内需要加变量符号$ ""不加一般也可以,但是变量符$必须加上才能够辨别 如果定义一个字符,本身字符就是一个变量或者命令,可以用''引起来,不辩别任何变量和命令,和什么都不加效果一样 以上为普通变量,不可传递给子进程 另有环境变量以及位置变量、只读变量 环境变量:可传递给子进程 环境变量赋值的两种简单方法 :[root@centos7 ~]:export NAME=`hostname` [root@centos7 ~]:declare -x NAME=`hostname`
用nev命令或export可显示所有环境变量。
环境变量一般主要用途在于,定义的环境变量可以在编辑文件、写脚本的界面也可以用
只读变量:故名思意,只能声明及显示,不可修改和删除
只读变量赋值:readonly NAME=`hostname`或 declare -r NAME=`hostname`
readonly -p 命令可以显示所有定义了的只读变量
位置变量:位置变量一般在一些shell脚本中使用 ,一般shell有自带只读变量$1,$2,$3··· $*,$#,$0$1 指脚本后跟的第一个参数、 $2 指脚本后跟的第二个参数,以此类推 $* 指脚本后跟的所有参数 $# 指脚本后跟的参数个数 $0 指脚本本身的绝对路径
例如
[root@centos7 data] cat /data/shell.sh echo $1 [root@centos7 data] bash /data/shell.sh centos6 centos6
/data/shell.sh是一个脚本,功能是打印出$1,而$1是一个位置变量,表示脚本后跟的第一个参数centos6 ,所以脚本实现的功能就是打印centso6
还有一些系统本身的特殊变量:$$ 进程本身PID $PATHPID 进程本身PID $PPID 父进程PID $_ 上一个命令的结果
以上普通变量、环境变量、只读变量赋值只本次登陆生效,如需永久生效需写入配置文件:
全局生效: /etc/profile 只对单个账户生效: ~/bash_profile补充一些括号以及引号的用法:
'' 单括号,最单纯的引号,不辩别命令,也不辩别变量 "" 双括号 稍微聪明一点 可以辨别变量,但不辩别命令 `` 反向单引号 ,最聪明的引号,可以辨别变量,也辨别命令 引用命令也可以用$( ) ( )中括号,可以在中括号内命名变量,然后跟子命令,只对括号内的子命令生效 { }花括号,在花括号内命令变量,无需子命令,后续也继续生效转载于:https://blog.51cto.com/14322599/2405607