linux下的shell命令学习笔记009
#! /bin/bash
# Program:
#This program shows "Hello world!" in your screen
# History:
# 2017/12/30 Orig Fisrt Release
# Note1:变量[name]和[value]相恋的等号左右不能存在空格,否则会出现一些错误!
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
echo -e "Hello world!\a\n"
exit 0
#! /bin/bash
# Program:
#User Inputs his name and last name. Program shows his full name.
# History:
# 2017/12/30 Orig Fisrt Release
# Note1:变量[name]和[value]相恋的等号左右不能存在空格,否则会出现一些错误!
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
read -p "first name:" firstname
read -p "last name:" lastname
echo -e "the full name is : $firstname $lastname\n"
exit 0
#! /bin/bash
# Program:
#新建文件,并且添加"_时间.bak"后缀
#模拟文件的不覆盖备份,和实际的应用相差甚远,仅仅作为例子
# History:
# 2017/12/30 Orig Fisrt Release
# Note1:变量[name]和[value]相恋的等号左右不能存在空格,否则会出现一些错误!
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# read -p "请输入要创建的文件名称:" filename
# 不再通过read读取,而是直接使用脚本的第一个参数
filename=$1
# 创建新文件
date=$(date +%y%m%d%H%M%S)
echo -e "date = $date"
filename=${filename}"_"${date}".bak"
echo -e "filename = $filename"
touch $filename
echo -e "新的文件[$filename]创建成功\n"
exit 0
#! /bin/bash
# Program:
#判断文件是否存在,若存在,则显示其内容。
#若不存在,则新建文件,并写入"Hello world!"
# History:
# 2017/12/30 Orig Fisrt Release
# Note1:变量[name]和[value]相恋的等号左右不能存在空格,否则会出现一些错误!
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# 此处加个判断,判断参数的个数
if [ $# != 1 ];then
echo "参数个数错误"
exit 1
fi
file=$1
# 实现的方式1
# test的参数-e用于检测该文件是否存在
# test -e $file && cat $file || echo "Hello world!" >$file
# 实现的方式2
if [ -e "$file" ];then
cat $file | grep --color=auto '.*'
else
echo "Hello world!" >$file
fi
exit 0
#! /bin/bash
# Program:
#需要case的使用
# History:
# 2017/12/30 Orig Fisrt Release
# Note1:变量[name]和[value]相恋的等号左右不能存在空格,否则会出现一些错误!
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# shell脚本函数函数操作
function select_item ()
{
select=$1
case $select in
"one")
echo "选择1号"
;;
"two")
echo "选择2号"
;;
"three")
echo "选择3号"
;;
*)
echo "您的输入有误!"
;;
esac
}
read -p "请输入你的参数(one/two/three): " select
select_item $select
exit 0
#! /bin/bash
# Program:
#while/until 循环的用法
#for固定循环
# History:
# 2017/12/30 Orig Fisrt Release
# Note1:变量[name]和[value]相恋的等号左右不能存在空格,否则会出现一些错误!
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# note1: 只有输入start之后才允许退出该循环
#
#until [ "$cmd" == "start" ]
while [ "$cmd" != "start" ]
do
read -p "请输入命令:" cmd
echo "$cmd" | grep --color=auto '.*'
done
# note2:
# --------------------------------------------
# 目前我虚拟机的地址是:192.168.1.105
# 我Windows 地址:192.168.1.103
# 我朋友的地址:192.168.1.101
#
# 路由器配置地址:192.168.1.1
# --------------------------------------------
network="192.168.1"
for sitenu in $(seq 0 2) $( seq 100 110)
do
#echo "检测 $network.$sitenu"
ping -i 0.02 -c 4 -w 1 ${network}.${sitenu} &> /dev/nul && result=0 || result=1
if [ "$result" == 0 ];then
echo "Server ${network}.${sitenu} is UP." | grep --color 'UP\.$'
else
#echo "Server ${network}.${sitenu} is DOWN." | grep --color 'DOWN\.$'
echo "Server ${network}.${sitenu} is DOWN."
fi
done
# note3
# for 数值处理
a=0
for (( i=0; i<10; i++ ))
do
a=$(($a + $i))
done
echo "ADD: result = $a"
# ---------- END -----------
exit 0