博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell的简单编写及执行
阅读量:5831 次
发布时间:2019-06-18

本文共 1796 字,大约阅读时间需要 5 分钟。

sell脚本:

1.新建文件(扩展名.sh)

2.写代码
3.给权限,执行(x执行,绝对路径,相对路径<./test.sh /root/test.sh>)
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 "[dvd]
name=dvd
enabled=1
gpgcheck=0
baseurl=" >/etc/yum.reopos.d/dvd.repo
yum clean all &> /dev/null
echo "yum源配置完成"
echo "yum源软件包数量:"
yum repolist | tail -1

装ftp

#!/bin/bash(安装vsftpd软件包)
yum -y install vsftpd
systemctl restart vsftpd
systemctl enable vsftpd

执行方式 ./1.sh /root/1.sh

脚本没有权限直接利用解释器 (ksh、sh)bash 1.sh 也是可以执行的 (以上执行的都是开启子进程的执行脚本)
脚本没有权限source 1.sh 也可以执行脚本(但是不开启子进程)<一般很少用特例如exit>

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中三种引号对赋值的影响(双引号” ”、单引号’ ’、反撇号`)<br/>   双引号 ” ” 可以界定一个完整的字符串<br/>   echo a b<br/>   echo “a b”<br/>   单引号 ‘ ’ 界定一个完整的字符串,屏蔽特殊符号即取消特殊符号的含义<br/>   echo $a<br/>   echo ‘$a’<br/>   反撇号 、 $( ) 其中只可以放命令,提取的是命令的结果<br/>   每周五备份/var/log,使用tar ,备份到root<br/>   crontab -e<br/>   03 03 * * 5 tar -czf /root/logdate +%F`.tar.gz /var/log

每周五三点三分
export 把变量发布为全局模式的变量
变量分为: 局部变量(自定义默认)
    全局变量(系统变量)
   a=11
   export a (a变量成为全局变量所有进程下都可以输出a的值)

转载于:https://blog.51cto.com/13404755/2050379

你可能感兴趣的文章