shell的简单编写及执行
2017-12-13 20:04
141 查看
sell脚本:
1.新建文件(扩展名.sh)
2.写代码
3.给权限,执行(x执行,绝对路径,相对路径<./test.sh /root/test.sh>)
vim a.sh
#!/bin/bash(解释器是谁)
#!/bin/bash(hello word)
echo "hello word"
chmod +x a.sh
bash a.sh
hello word
echo "正在配置yum源..."
rm -rf /etc/yum.repos.d/*
echo "[dvd]
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 -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中三种引号对赋值的影响(双引号” ”、单引号’ ’、反撇号
每周五三点三分
export 把变量发布为全局模式的变量
变量分为: 局部变量(自定义默认)
全局变量(系统变量)
a=11
export a (a变量成为全局变量所有进程下都可以输出a的值)
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=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 -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的值)
相关文章推荐
- 简单的shell文件编写:拷贝特定的可执行文件到某特定目录下。
- 简单的shell文件编写:拷贝特定的可执行文件到某特定目录下。
- 自己编写的简单shell
- 编写一个简单的shell
- Shell脚本简单总结及编写脚本中的小技巧
- Shell 脚本学习 — 简单的执行跟踪
- 一个简单的 C 程序文件,经过 0、编写,1、预处理,2、编译,3、链接,终于生成了一个可执行文件
- 自己编写的简单shell
- 用shell编写的简单密码加密程序,涉及到ASCII与字符的相互转换,以及命令结果输出到变量
- 根据用户选择执行命令的一段简单Linux Shell
- 170509、文本编辑器编写的shell脚本在linux下无法执行的解决方法
- ubuntu下简单脚本的编写和执行
- 简单shell脚本的编写
- 对shell命令执行简单的跟踪
- 简单的shell脚本编写
- 自己编写的简单shell
- sublime text 3编写shell脚本执行报$'\r': command not found
- 【APP】Shell脚本简单总结及编写脚本中的小技巧 推荐
- shell:概述、脚本编写、变量的简单基础
- 什么是shell以及如何编写最简单的shell