xinghe0 发表于 2018-8-18 06:53:45

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]
查看完整版本: shell的简单编写及执行