Linux编写脚本nsum求和,shell脚本学习与总结

本文详细介绍了Linux Shell脚本的编写,包括小写字母敏感性、特殊字符转义、注释、函数定义、控制结构(如if...then、for...in、while...do等)、命令替换、文件权限、cron定时任务、条件判断和循环语句。此外,还探讨了变量、输入输出重定向、管道、trap命令、用户信息查询、文件权限和粘滞位等关键概念,适合Shell脚本初学者和进阶学习。
摘要由CSDN通过智能技术生成

1.shell 脚本是区分小写的

2.Unix特殊字符有: ( ; $ ? & * () [] ` ‘ “ + 使用其时要进行转义()

3.Shell的注释以#开头

4.函数的定义

Function fuction_name(){

Command to execute

}

调用时直接用function_name.

5.控制结构

1)If...then语句

If [ test_command ]

Then

Commands

if

2)If...then...else语句

If [ test_command ]

Then

Commands

Else

commands

if

3)If...then...elif...then...(else)语句

If [ test_command ]

Then

Commands

Elif [ test_command ]

Then

Commands

Else

Commands

Fi

4)for ... In语句

For loop_varible in argument_list

Do

Commands

done

5)while语句

While test_command_is_true

Do

Commands

Done

6)until 语句

Until test_command_is_true

Do

Commands

Done

7)case语句

Case $variable in

Match_1)

Commands_for_1

Match_2)

Commands_for_2

.

.

.

*) #option for other values

Commands_for_no_match

esac

6.break、continue、exit和return语句

Break跳出整个循环体,然后执行循环体外接下来的代码;

Continue 结束本次循环,继续下次循环;

Exit 退出整个脚本,一般在其后加入一个整数(如exit 0),作为返回代码发送给系统;

Return 用于在函数中返回数据,或返回一个结果给调用函数

7.here文档

用于将输入重定向到某个交互式shell脚本或程序,而不需要用户介入。

Program_name << LABLE

Program_input_1

Program_input_2

.

.

Program_input_#

LABLE

注意,程序输入行中的LABLE标记之间是没有空白的,且输入的必须是程序所期望的准确数据,否则可能会失效。

8.符号命令

( )  在一个子shell中运行括号所括起来的命令

(( ))  在某个shell中对变量进行求值和赋值,并进行数学运算

$(( )) 对括起来的表达式进行求值

[ ]   与test命令相同

[[ ]]  用于字符串比较

$( )   命令替换

` `    命令替换

9.命令行参数

命令行参数$0,$1,$2,...,$9是位置参数,$0指向的是命令本身。

命令shift用于位置参数向左移动,如shift命令命令$2成为$1。Shift加入一个数字来移动多个位置,如shift 3使得$4成为$1。shift是一种按照参数列出顺序来处理每个位置参数的良好方式。

10.特殊参数

$* 指定所有的命令行参数,与$@的意义一样。两者只有在加双引号时意义不同,如

“$*”将整个参数列表作为一个参数来获取,”$@”获取整个参数列表,并将它分隔成不同的参数。

$? 检查返回代码。一个成功执行完的命令返回代码为0,不成功是一个非0值。

11.双引号,单引号和 `(esc下面的按键)

单引号''对内容进行全引用,也就是说,对变量工命令语句使用文字正文,不进行任何替换;而双引号则进行部分引用,则允许字符替换或命令替换。

`(esc下面的按键)用于执行某个命令或脚本并替换其输出结果,即命令替换,相同功能有$( )。此外,如果希望每次使用某个变量时重新读取它的值,也可使用它,如`$PWD`,则每次使用这个变量时都会重新读取它的新值。

12.文件权限和粘滞位(suid,sgid)

文件权限有读,写,执行三种权限。将文件操作模式设为总是作为某个特定的用户(suid),或总是作为某个特定的组成员(sgid)来执行称为设置粘滞位。可以用命令chmod进行修改文件权限。

13.在远程主机上运行命令

Ssh user@hostname command_to_execute

如:ssh jack@192.168.1.3 “uptime”

14.设置陷阱

当某个程序被迫中止时,会有一个退出信号,这个信号称为一个陷阱(trap)。这样我们可以在捕捉到退出信号时执行命令,如捕获到退出信号1,2,3,15时退出:

Trap `echo “nEXITTING on a TRAPPED SINGAL”; exit` 1 2 3 15

注意不能捕获到kill -9.的退出信号。

15.查看用户信息

Who 提供每个登录用户的用户名、tty、登录时间及用户登录地(IP)

W 对who的扩展,包括作业进程时间,总用户进程时间等,但没有用户登录地信息。

Last 显示自wtmp文件创建开始登录过的用户名单信息,包括登录时间,退出时间,tty等。

16.ps命令

显示当前系统进程的信息。

17.与用户通信

Wall,rwall,write,talk

18.大小写文本

用tr或typeset命令。

VALUES = “AFCDLD”

Echo $VALUES | tr ‘[A-Z]' ‘[a-z]'  #将大写转换成小写;tr ‘[a-z]' ‘[A-Z]'则小写转换成大写

在VALUES前使用

Typeset -l VALUES  #将大写转换成小写;typeset -u 则小写转换成大写。

19.定时运行脚本cron

Crontab -e进入用户cron表添加定时脚本,如

在1月15

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值