shell的简单编写及执行
sell脚本:1.新建文件(扩展名.sh)
2.写代码
3.给权限,执行(x执行,绝对路径,相对路径)
vim a.sh
#!/bin/bash(解释器是谁)
例:
vim a.sh
#!/bin/bash(hello word)
echo "hello word"
chmod +x a.sh
bash a.sh
hello word
yum自动搭建的脚本: #!/bin/bash(搭建yum仓库)
echo "正在配置yum源..."
rm -rf /etc/yum.repos.d/*
echo "
name=dvd
enabled=1
gpgcheck=0
baseurl=http://172.25.4.254/rhel7" >/etc/yum.reopos.d/dvd.repo
yum clean all &> /dev/null
echo "yum源配置完成"
echo "yum源软件包数量:"
yum repolist | tail -1
装ftp
#!/bin/bash(安装vsftpd软件包)
yum -yinstall vsftpd
systemctl restart vsftpd
systemctl enable vsftpd
执行方式./1.sh /root/1.sh
脚本没有权限直接利用解释器(ksh、sh)bash 1.sh 也是可以执行的 (以上执行的都是开启子进程的执行脚本)
脚本没有权限source 1.sh 也可以执行脚本(但是不开启子进程)
shell变量定义/赋值/查看:
自定义变量:由数字、字母、符号组成不能以数字开头
a="值"
echo $变量
调用变量有时候存在歧义需要加{}
a=11
echo $aRMB(输出没有,没有该变量)
echo ${a}RMB
unset $a 撤销变量a(一般用不到)
系统定义变量
PASH,HOME,USER,UID,HOSTNAME
PS1一级提示符,PS2二级提示符
#!/bin/bash
echo$0输出脚本名称
echo$1在执行脚本输出后面的第一个参数
echo$2在执行脚本输出后面的第二个参数
echo$3在执行脚本输出后面的第三个参数
(..............)
echo$*输出所有的参数
echo$#输出所有的综合参数的个数
echo$$输出PID数值
echo$?查看上一命令执行成功没有输出为0执行成功其他数字都错
$! Chakanzuihou de yige jincheng de PID hao
例:(创建用户与设置密码)
#!/bin/bash
useradd$1
echo$2 | passwd --stdin $1
#!/bin/bash
read -p“请输入用户名:”name
stty -echo
read -p“请输入密码:” pass
stty echo
uaseradd$name
echo$pass|passwd--stdin$name
stty (-)echo 回显 (关闭)打开
在shell中三种引号对赋值的影响(双引号” ”、单引号’ ’、反撇号`) 双引号 ””可以界定一个完整的字符串 echoa b echo“a b” 单引号 ‘ ’界定一个完整的字符串,屏蔽特殊符号即取消特殊符号的含义 echo$a echo‘$a’ 反撇号、$( ) 其中只可以放命令,提取的是命令的结果 每周五备份/var/log,使用tar ,备份到root crontab-e 03 03 * * 5tar-czf/root/logdate +%F`.tar.gz/var/log
每周五三点三分
export 把变量发布为全局模式的变量
变量分为: 局部变量(自定义默认)
全局变量(系统变量)
a=11
export a (a变量成为全局变量所有进程下都可以输出a的值)
页:
[1]