您的位置:首页 > 运维架构 > Shell

linux中shell脚本的学习(一)

2014-11-01 10:34 134 查看
linux中shell是一个特殊的应用程序。它介于系统的内核与用户之间。充当命令“解释器”的作用角色。负责接收用户输入的操作指令,并进行解释。将需要执行的操作传递给内核。并输出执行结果;

下面我们来看一下当前系统所支持的shell的种类:


其中/bin/shell 是目前大多数linux中采用的默认shell。我们主要学习bash、

我们来写第一个脚本文件用作测试。
vim first.sh
cd /boot/
pwd
ls -lh *
chmod +x first.sh




shell脚本标准的桥本结构:
vim first.sh

#!/bin/bash
#this is my first shell.
cd /boot
echo "当前的目录位于"
pwd
echo "其中以a开头的文件包括:"
ls -lh a*

chmod +x first.sh 给予其执行的权限




也可以通过sh.first 或者. first.sh 来执行脚本。。

重定向和管道操作:
重定向输出使用 > 或者 >> 操作符号。> 用于覆盖 >> 多用于追加使用
例如:



追加的应用:




重定向输入:重定向输入使用"<"操作符

可以使一些交互式操作过程能够读取文件来完成:
vim pass.txt
123.com



将密码直接定向到hujianli用户里面
错误重定向:
例如:将tar命令备份时出现的错误信息保存到error.log文件中:



使用 2> 时会像 > 一样覆盖掉文件。若要追加内容而不是覆盖掉文件,就要用 2>> 操作符。

例如:自动编译脚本。。把输出的信息定义到/dev/null里面。。




管道操作:
“|” 位于| 左侧命令输出的结果回作为右侧命令的输入(出来对象),同一命令中可有多条管道
在shell中|通常用作过滤所需要的关键信息:
例如:编写一个脚本,只显示passwd中的用户名和登录shell列:



其中awk的作用是把:当做分隔,输出$1,$7的字符串。 -F用作指定分隔符号:未指定是用空格标示分隔。
再列举一个:


grep “/$”代表/分区 对象 awk ‘{print $5}’代表空格作为分隔,第5个

例如:





应用变量的值:
例如:




双引号:
hujianli = “jianli”
echo $hujianli
jianli





单引号,不能解释其他变量,单引号里面的所有内容都是原样输出的。。
这里不做演示。
反撇号:主要将``里面的内容输出显示。。





read 是bash的内置命令,主要给变量赋值。例如:




今天先复习这么一点,改天继续。。。。shell脚本,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息