SHELL 的一些简单的用法

SHELL 的定义:如果你有一系列经常使用的Linux命令,你可以把他们存储在一个文件中。Shell可以读取这个文件并执行其中的命令。这样的文件被称为脚本文件。
SHELL 的结构:shell 类型
文件格式:abc.sh
函数
主过程

一般模板

#!/bin/bash                           shell类型
#a simple shell script example
#a function
sayhello()                函数
{
    echo "Enter Your name:"
    read name          读取来自键盘输入的变量
    echo "Hello $name"
}
echo "programme starts here..."  主过程
sayhello
echo "programme ends."

特殊符号:
1、注释符#
除了#!/bin/bash里的#特殊
2、美元符 使 a表示变量a的值。变量字符长度超过1个时,用{}括起来
3、、单引号
被引起的字符全部做普通字符,即全部原样
echo ‘my $SHELL’

4、双引号
引号内的内容,除$、转义符\、倒引号这三个保留特殊功能,其他字符均做普通字符。
5、倒引号(数字1键旁边的那个键)
引号内的字符串当做shell命令行解释执行,得到的结果取代整个倒引号括起来的部分。
pwd`即pwd命令的执行结果
$LOGNAME 系统变量

#!/bin/bash

echo "abcdefg........"

syshello

syshello()
{
    echo "enter function....."
    ls -l
    echo "over  function....."
}

echo "start......."


sy```shello

echo "exit......"

常用环境变量
1、HOME变量
Linux系统中的每个用户都有一个相关的称作HOME的目录。
2、PATH序的搜索
包含一列用冒号定界的目录的路径名字,便于可执行程序的搜索。
部分内部变量是:
$# ——传送给shell程序的位置参数的数量
$?——最后命令的完成码或者在shell程序内部执行的shell程序(返回值)
$0 ——shell程序的名称
$*——调用shell程序时所传送的全部参数的单字符串, “参数1”“参数2”…形式保存的参数
$n———-第n个参数
条件判断命令:
test n1 -参数 n2(或 –参数 表达式)真返回0,假返回1。
参数:
-lt 小于
-le小于等于
-gt 大于
-ge 大于等于
-eq 等于
-ne 不等于

#!/bin/bash

if [ $# -ne 1 ]
then
    echo "Usage:$0 filename"
    exit 1
fi
<< A
if test -f $1
then
    echo "file exist!"
else
    touch $1
    echo "create file:$1"
fi
A

test -f $1 && echo "file exist!"
test -f $1 || touch $1

shell运算符和C语言基本类似,也有分支、循环流程控制。
简单举例
后面例子涉及的命令:
seq命令:产生数字序列
比如 seq 100 400
expr命令:对表达式求值
[]直接求值命令:对被括起来的表达式求值
循环语句:

#!/bin/bash
<< A
for i in asn 12 dd 56464sfs 646g 
do
    echo $i
done
A

<< B
s=0
for i in 1 2 3 4 5 6 7 8 9 10
do
   s=$((s+i))
done

echo $s
B
s=0
for i in `seq 1 10`
do
   s=$((s+i))
done

echo $s
#!/bin/bash


s=0
i=0
while [ $i -le 100 ]
do
    s=$((s+i))
    i=$((i+1))
done

echo $s

**文件测试
-f 存在且是普通文件
-d 存在且是目录
-s 存在且字节数大于0
-r 存在且可读
-w 存在且可写
-x 存在且可执行
如:test -d “mydoc”
判断mydoc是否是目录
字符串测试
test s 字符串s非空
test s1=s2 字符串s1等于s2
test s1!=s2 字符串s1不等于s2
test -z s 字符串长=0,即为空串
test -n s 字符串长>0
=: 等于则为真
!=:不相等则为真
-z字符串:字符串长度为零则为真
-n字符串:字符串长度不为零则为真**n字符串:字符串长度不为零则为真
几个 SHELL 的应用
1,编写一个名为iffile程序,它执行时判断/bin目录下date文件是否存在?

filename=/bin/date
if
    (test -f "$filename")
then
    echo "exist"
fi  

2.编写一个名为menu的程序,实现简单的弹出式菜单功能,用户能根据显示的菜单项从键盘选择执行对应的命令。

#!/bin/bash
clear
echo " ---------MENU---------"
echo
echo "1.Find files modified in last 24 hours"
echo "2.The free disk space"
echo "3.Space consumed by this user"
echo "4.Exit"
echo
echo -n " Select:"
read choice
case $choice in
    1)find $HOME -mtime -1 -print;;
    2)df;;
    3)du -s $HOME;;
    4)exit;;
    *)echo "Invalid option"
esac

3.编写一个名为greet的问候程序,执行时能根据系统当前的时间向用户输出问候信息。设从半夜到中午为早晨,中午到下午六点为下午,下午六点到半夜为晚上。

#! /bin/bash
hour=`date | cut -c 10-11`
if
    test "$hour" -ge 0 "$hour" -lt 12;
then
    echo "Good morning!"
elif 
    test "$hour" -ge 12 -a "$hour" -le 18;
then
    echo "Good afternoon!"
else
    echo "Good evening!"
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值