shell script 入门 笔记

shell script 入门


在 shell script 的撰写中还需要用到底下的注意事项:

1.  指令的执行是从上而下、从左而右的分析与执行;
2.  指令的执行就如同第五章内提到的: 指令、选项不参数间的多个空白都会被忽略掉;
3.  空白行也将被忽略掉,而且 [tab] 按键所推开的空白同样规为空格键;
4.  如果读取到一个 Enter 符号 (CR) ,就尝试开始执行该行 (或该串) 命令;
5.  至亍如果一行的内容太多,则可以使用『 \[Enter] 』来延伸至下一行;
6.  『 # 』可做为批注!任何加在 # 后面的资料将全部被规为批注文字而被忽略!



第一个shell script,必须是hello world。哈哈


#!/bin/bash

PATH=/bin/:/sbin/:/usr/sbin/:/usr/local/sbin/:/usr/local/sbin:~/bin

export PATH
echo -e  "hello world!  \n"
exit 0
       



jasonleaster@ubuntu:~/shell_script_beginner$ sh ./sh01.sh
hello world!  



特此说明一下,Ubuntu默认的shell是dash,而不是bash,echo -e时候会有问题,会把-e也打印出来。


转载link:http://webnoties.blog.163.com/blog/static/1835251412013518362635/

很谢谢作者的blog帮我搞定了这个默认shell不是bash的问题

因为ubuntu默认的sh是连接到dash的,又因为dash跟bash的不兼容所以出错了.执行时可以把sh换成bash 文件名.sh来执行.成功.dash是什么东西,查了一下,应该也是一种shell,貌似用户对它的诟病颇多.
by the way修改sh默认连接到bash的一种方法:
sudo dpkg-reconfigure dash
选择no即可.












#! /bin/bash

# code writer : EOF
# code date   : 2014.07.29 
# code file   : sh02.sh
# e-mail      : jasonleaster@gmail.com
# code purpose:
#               This program would ask the user to input some varible's value
#       and then print them out into the screen.

PATH=/bin/:/sbin/:/usr/sbin/:/usr/local/sbin/:/usr/local/sbin:~/bin
export PATH

read -p "Please input your first name:" first_name #give the user a message whatshould be inputed
read -p "Please input your second name" second_name
echo -e "\nYour full name is $first_name $second_name" #print out the user's name
                                                                                                                                                                                                                                                                                                                                                                                                                                                               


jasonleaster@ubuntu:~/shell_script_beginner$ sh ./sh02.sh
Please input your first name:Jason
Please input your second nameLeaster

Your full name is Jason Leaster



#! /bin/bash

# code writer : EOF
# code date   : 2014.07.29
# code file   : sh04.sh
# e-mail      : jasonleaster@gmail.com
# code purpose:
#               This program was coded for demonstrating some
#       mathmatical operations on varibles which in bash script
#       If you find something wrong with my code, please touch me.
#       Thank you!

PATH=/bin/:/sbin/:/usr/sbin/:/usr/local/sbin/:/usr/local/sbin:~/bin
export PATH

echo -e "You SHOULD input 2 numbers ,I will cross them !\n"
read -p "first number: " first_num
read -p "second number: " second_num

total=$(($first_num*second_num))

echo -e "total is : $total"
jasonleaster@ubuntu:~/shell_script_beginner$ sh ./sh04.sh
You SHOULD input 2 numbers ,I will cross them !

first number: 10
second number: 25
total is : 250


不怕丢人的说,上面这地方写成$(total)差点纠结而shi。。。。



#! /bin/bash

# code writer : EOF
# code date   : 2014.07.29 
# code file   : sh05.sh
# e-mail      : jasonleaster@gmail.com
# code purpose:
#               This program was coded for a demo for command -- test
#       If you find something wrong with my code, please touch me.
#       Thank you!

PATH=/bin/:/sbin/:/usr/sbin/:/usr/local/sbin/:/usr/local/sbin:~/bin
export PATH

echo -e "Please input a filename, I will check the filename's type and permission.\n\n"
read -p "Input a filename : " filename

test -z $filename && echo "You must input a filename." && exit 0

test ! -e $filename && echo "The filename '$filename' DO NOT exist" && exit 0

test -f $filename && filetype="regulare file"
test -d $filename && filetype="directory"
test -r $filename && perm="readable"
test -w $filename && perm="writable"
test -x $filename && perm="excutable"

echo "The filename: $filename is a $filetype"
echo "And the permissions are: $perm"


jasonleaster@ubuntu:~/shell_script_beginner$ sh ./sh05.sh
Please input a filename, I will check the filename's type and permission.


Input a filename : sh01.sh
The filename: sh01.sh is a regulare file
And the permissions are: writable



删除一个环境变量用      unset 环境变量名


 




#! /bin/bash

# code writer : EOF
# code date   : 2014.07.29
# code file   : sh06.sh
# e-mail      : jasonleaster@gmail.com
# code purpose:
#               This program was coded for a demo for [ A==B ]
#       If you find something wrong with my code, please touch me.
#       Thank you!

PATH=/bin/:/sbin/:/usr/sbin/:/usr/local/sbin/:/usr/local/sbin:~/bin
export PATH

read -p "Please input (Y/N) : " yn
[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK, continue" && exit 0
[ "$yn" == "N" -o "$yn" == "n" ] && echo "NO,interrupt" && exit 0
echo "I don't know what you choice is" && exit 0



jasonleaster@ubuntu:~/shell_script_beginner$ sh ./sh06.sh
Please input (Y/N) : y
OK, continue



#! /bin/bash

# code writer : EOF
# code date   : 2014.07.29 
# code file   : sh07.sh
# e-mail      : jasonleaster@gmail.com
# code purpose:
#               This program was coded for a demo that user input a file name
#       and some parameters, lately program process it and print out the file
#       type and permission.
#       If you find something wrong with my code, please touch me.
#       Thank you!

PATH=/bin/:/sbin/:/usr/sbin/:/usr/local/sbin/:/usr/local/sbin:~/bin
export PATH

echo "The script name is ==> $0"
echo "Total parameter numbe is ==> $#"
[ "$#" -lt 2 ] && echo "The number of parameter is less than 2. Stop here" && exit 0
echo "Your whole parameter is ==> $@"
echo "1st parameter ==> $1"
echo "2nd parameter ==> $2"


jasonleaster@ubuntu:~/shell_script_beginner$ sh ./sh07.sh
The script name is ==> ./sh07.sh
Total parameter numbe is ==> 0
The number of parameter is less than 2. Stop here
jasonleaster@ubuntu:~/shell_script_beginner$ sh ./sh07.sh hello world
The script name is ==> ./sh07.sh
Total parameter numbe is ==> 2
Your whole parameter is ==> hello world
1st parameter ==> hello
2nd parameter ==> world





#! /bin/bash

# code writer : EOF
# code date   : 2014.07.30 
# code file   : sh08.sh
# e-mail      : jasonleaster@gmail.com
# code purpose:
#               This program was coded for a demo for command -- shift
#       If you find something wrong with my code, please touch me.
#       Thank you!

PATH=/bin/:/sbin/:/usr/sbin/:/usr/local/sbin/:/usr/local/sbin:~/bin
export PATH

echo "Total parameter number is ==> $#"
echo "Your whole parameter is ==> $@"
shift
echo "Total parameter number is ==> $#"
echo "Your whole parameter is ==> $@"
shift 3
echo "Total parameter number is ==> $#"
echo "Your whole parameter is ==> $@"



jasonleaster@ubuntu:~/shell_script_beginner$ sh ./sh08.sh
Total parameter number is ==> 0
Your whole parameter is ==>
Total parameter number is ==> 0
Your whole parameter is ==>
Total parameter number is ==> 0
Your whole parameter is ==>
jasonleaster@ubuntu:~/shell_script_beginner$ sh ./sh08.sh hello world
Total parameter number is ==> 2
Your whole parameter is ==> hello world
Total parameter number is ==> 1
Your whole parameter is ==> world
Total parameter number is ==> 1
Your whole parameter is ==> world
jasonleaster@ubuntu:~/shell_script_beginner$ sh ./sh08.sh hello world jason leaster tonight
Total parameter number is ==> 5
Your whole parameter is ==> hello world jason leaster tonight
Total parameter number is ==> 4
Your whole parameter is ==> world jason leaster tonight
Total parameter number is ==> 1
Your whole parameter is ==> tonight


有意思的是如果文件名之后没有“参数”,parameter number就是0,如果参数少于shift移动的距离(比方说代码中的shift 3),就会保留最低数目为1,如果参数少于shift移动的距离






#! /bin/bash

# code writer : EOF
# code date   : 2014.07.30
# code file   : sh08.sh
# e-mail      : jasonleaster@gmail.com
# code purpose:
#               This program was coded for a demo for "if[] ; then fi"
#       If you find something wrong with my code, please touch me.
#       Thank you!

PATH=/bin/:/sbin/:/usr/sbin/:/usr/local/sbin/:/usr/local/sbin:~/bin
export PATH

read -p "Please input (Y/N) :" yn

if [ "$yn" == "Y" -o "$yn" == "y" ]; then
        echo "OK,continue"
        exit 0
fi

if [ "$yn" == "N" -o "$yn" == "n" ]; then
        echo "Oh,interrupt!"
        exit 0
fi

echo "I don't know what your choice is" && exit 0



jasonleaster@ubuntu:~/shell_script_beginner$ sh ./sh09.sh
Please input (Y/N) :y
OK,continue
jasonleaster@ubuntu:~/shell_script_beginner$ sh ./sh09.sh
Please input (Y/N) :n
Oh,interrupt!







#! /bin/bash

# code writer : EOF
# code date   : 2014.07.30
# code file   : sh9.sh
# e-mail      : jasonleaster@gmail.com
# code purpose:
#               This program was coded for a demo for "if[] ; elif [] ;then else fi"
#       If you find something wrong with my code, please touch me.
#       Thank you!

PATH=/bin/:/sbin/:/usr/sbin/:/usr/local/sbin/:/usr/local/sbin:~/bin
export PATH

read -p "Please input (Y/N) :" yn

if [ "$yn" == "Y" -o "$yn" == "y" ]; then
        echo "OK,continue"
        exit 0
elif [ "$yn" == "N" -o "$yn" == "n" ];then
        echo "Oh,interrupt!"
        exit 0
else
        echo "Are you kidding me? You don't know what means \"Input (Y/N)\" \n"
fi

echo "I don't know what your choice is" && exit 0


jasonleaster@ubuntu:~/shell_script_beginner$ sh ./sh10.sh
Please input (Y/N) :hehe
Are you kidding me? You don't know what means "Input (Y/N)" \n
I don't know what your choice is









#! /bin/bash

# code writer : EOF
# code date   : 2014.07.30
# code file   : sh10.sh
# e-mail      : jasonleaster@gmail.com
# code purpose:
#               This program was coded for a demo for "if[] ; elif [] ;then else fi"
#       If you find something wrong with my code, please touch me.
#       Thank you!

PATH=/bin/:/sbin/:/usr/sbin/:/usr/local/sbin/:/usr/local/sbin:~/bin
export PATH

echo "This program will print your selection !"

case $1 in
        "one")
        echo "Your choice is ONE"
        ;;
        "two")
        echo "Your choice is TWO"
        ;;
        *)
        echo "42"
        ;;
esac


jasonleaster@ubuntu:~/shell_script_beginner$ sh ./sh12.sh hello world
This program will print your selection !
42



#! /bin/bash

# code writer : EOF
# code date   : 2014.07.30 
# code file   : sh13.sh
# e-mail      : jasonleaster@gmail.com
# code purpose:
#               This program was coded for a demo for "function and while loop"
#       If you find something wrong with my code, please touch me.
#       Thank you!

PATH=/bin/:/sbin/:/usr/sbin/:/usr/local/sbin/:/usr/local/sbin:~/bin
export PATH

function secret()
{
        echo "hello world!"
}

temp=10

while [  $temp != 0 ]
do
        secret
        temp=$(($temp-1))
        echo "$temp"
done

jasonleaster@ubuntu:~/shell_script_beginner$ sh ./sh13.sh
hello world!
9
hello world!
8
hello world!
7
hello world!
6
hello world!
5
hello world!
4
hello world!
3
hello world!
2
hello world!
1
hello world!
0



最后sh -x将使用do啊的script 内容显示到屏幕上,这是很有用的参数,而-n不会显示任何信息

jasonleaster@ubuntu:~/shell_script_beginner$ sh -x ./sh13.sh
+ PATH=/bin/:/sbin/:/usr/sbin/:/usr/local/sbin/:/usr/local/sbin:/home/liuzjian/bin
+ export PATH
+ temp=2
+ '[' 2 '!=' 0 ']'
+ secret
+ echo 'hello world!'
hello world!
+ temp=1
+ echo 1
1
+ '[' 1 '!=' 0 ']'
+ secret
+ echo 'hello world!'
hello world!
+ temp=0
+ echo 0
0
+ '[' 0 '!=' 0 ']'




去衡山的时候,在白龙潭(应该是吧,不记得啦。。。)遇见的两个小孩。。。多么美好年纪啊。。。大笑


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于微信小程序的家政服务预约系统采用PHP语言和微信小程序技术,数据库采用Mysql,运行软件为微信开发者工具。本系统实现了管理员和客户、员工三个角色的功能。管理员的功能为客户管理、员工管理、家政服务管理、服务预约管理、员工风采管理、客户需求管理、接单管理等。客户的功能为查看家政服务进行预约和发布自己的需求以及管理预约信息和接单信息等。员工可以查看预约信息和进行接单。本系统实现了网上预约家政服务的流程化管理,可以帮助工作人员的管理工作和帮助客户查询家政服务的相关信息,改变了客户找家政服务的方式,提高了预约家政服务的效率。 本系统是针对网上预约家政服务开发的工作管理系统,包括到所有的工作内容。可以使网上预约家政服务的工作合理化和流程化。本系统包括手机端设计和电脑端设计,有界面和数据库。本系统的使用角色分为管理员和客户、员工三个身份。管理员可以管理系统里的所有信息。员工可以发布服务信息和查询客户的需求进行接单。客户可以发布需求和预约家政服务以及管理预约信息、接单信息。 本功能可以实现家政服务信息的查询和删除,管理员添加家政服务信息功能填写正确的信息就可以实现家政服务信息的添加,点击家政服务信息管理功能可以看到基于微信小程序的家政服务预约系统里所有家政服务的信息,在添加家政服务信息的界面里需要填写标题信息,当信息填写不正确就会造成家政服务信息添加失败。员工风采信息可以使客户更好的了解员工。员工风采信息管理的流程为,管理员点击员工风采信息管理功能,查看员工风采信息,点击员工风采信息添加功能,输入员工风采信息然后点击提交按钮就可以完成员工风采信息的添加。客户需求信息关系着客户的家政服务预约,管理员可以查询和修改客户需求信息,还可以查看客户需求的添加时间。接单信息属于本系统里的核心数据,管理员可以对接单的信息进行查询。本功能设计的目的可以使家政服务进行及时的安排。管理员可以查询员工信息,可以进行修改删除。 客户可以查看自己的预约和修改自己的资料并发布需求以及管理接单信息等。 在首页里可以看到管理员添加和管理的信息,客户可以在首页里进行家政服务的预约和公司介绍信息的了解。 员工可以查询客户需求进行接单以及管理家政服务信息和留言信息、收藏信息等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值