目录
一、shell脚本文件:
1、创建文件
2、编辑脚本
3、查看环境变量
4、在命令行使用相对路径或绝对路径引用脚本。
二、使用变量
1、环境变量:在环境变量名称前加美元符号$
2、用户变量:不超过20个字母、数字或下划线,区分大小写,变量、等号和值之间不能出现空格,可用$引用变量
3、反引号(`):用于将shell命令的输出赋给变量
4、输出重定向(大于号) :将命令的输出重定向到文件
5、输入重定向(小于号) :将文件的内容重定向到命令
6、管道(|):将一个命令的输出重定向到另一个命令上
7、执行数学运算
8、退出脚本
shell命令行界面:多个命令一起运行可以使用分号隔开 如:date ; who
一、shell脚本文件:
1、创建文件
touch test.txt 脚本添加执行权限chmod u+x test.txt
2、编辑脚本
#!/bin/bash 第一行告诉shell用哪个shell运行脚本
# this is test 注释
echo -n 'today is: ' #echo用于显示消息,-n在同一行显示字符串消息
date #当前时间
echo "who's oparation:" #当消息字符有引号时可用单引号或双引号把字符串圈起来
who #用户登录时间
3、查看环境变量
echo $PATH,把脚本目录/home/wcy/bin/添加到环境变量PATH中
4、在命令行使用相对路径或绝对路径引用脚本。
/home/wcy/bin/test.txt 或bin下 ./test.txt
结果:
today is: Thu Mar 30 11:30:49 EDT 2017
who's oparation:
wcy pts/0 2017-03-30 10:46 (192.168.0.100)
二、使用变量
1、环境变量:在环境变量名称前加美元符号$
echo "userid is : $USER"
echo UID: $UID
echo HOMR: $HOME
echo "the cost of the item is \$15" #如要显示美元符号前面要加反斜线
echo "this $15"
结果:
userid is : wcy
UID: 0
HOMR: /root
the cost of the item is $15
this 5
2、用户变量:不超过20个字母、数字或下划线,区分大小写,变量、等号和值之间不能出现空格,可用$引用变量
value=10
value2=$value
echo value2 is $value2
结果:
value2 is 10
3、反引号(`):用于将shell命令的输出赋给变量
today=`date`
echo today is : $today
echo `date +%y%m%d`
结果:
today is : Thu Mar 30 12:21:02 EDT 2017
date
170330
4、输出重定向(大于号) :将命令的输出重定向到文件
command > outputfileName 文件存在会覆盖
command >> outputfileName 文件存在不会覆盖 ,追加
who >> test1
date > test1
结果:
wcy pts/0 2017-03-30 10:46 (192.168.0.100)
Thu Mar 30 12:38:54 EDT 2017
5、输入重定向(小于号) :将文件的内容重定向到命令
command < inputfileName
[root@localhost bin]# wc < test1
2 11 84
说明test1文件有2行 11个单词 84字节
内联输入重定向(双小于号):允许在命令行输入重定向的数据
command << marker
data #重定向数据
maker #开始和结尾标识要一致
例如:
[root@localhost wcy]# wc << end
> test 11
> test 12 test1
> end
2 5 22
6、管道(|):将一个命令的输出重定向到另一个命令上
command | command2
rpm -qa | sort > rpm.list
7、执行数学运算
expr命令 :expr 1+5
方括号[]:var=$[$var1 + 5]
8、退出脚本
查看退出状态码(0-255):echo $?
0 命令成功结束
1 命令未知错误
126 命令不可执行
127 无效命令
exit命令:默认脚本以脚本中的最后一个命令的退出状态码退出,但脚本结束时可以使用exit指定
#!/bin/bash
var1=12
var2=20
var3=$[$var1 + var2]
echo the result is $var3
exit $var3
结果:
[root@localhost bin]# ./r.txt
the result is 32
[root@localhost bin]# echo $?
32
还没有评论,来说两句吧...