《Shell编程从入门到精通》张昊-chap1-2

缘起

20190314开始复习及学习吧;

张昊编著;

内容

目录 i(9/314)
全书11章

chap1 第1个Shell程序 1(13/334)
1.1、第一道菜

[echo.sh]
#!/bin/sh
cd /tmp
echo “hello world!”

(1)每一行代码是啥意思;(2)如何运行程序?

1.2、如何运行程序

1.2.1 选婿:位于第一行的#!

匹配解释器。
解释器路径可以用whereis bash查。

自删除脚本
#!/bin/rm
# 运行这个脚本时,什么也不会发生,只是删自已
WHATEVER=65
echo “This line will never print!”
exit $WHATEVER #脚本不会在这退出

1.2.2 找茬:程序执行的差异

source echo.sh时,改变了目录。

1.2.3 shell的命令种类

(1)内建命令
(2)shell函数
(3)外部命令

要知道source执行的差异,不会创建子进程,直接在父进程中执行。

1.3、Linux Shell的变量

1.3.1、变量

测试全局变量和局部变量的适用范围
#!/bin/sh
num=123
func1()
{
num=321
echo $num
}
Func2()
{
local num=456 #局部变量
echo $num
}
echo $num
func1
echo $num
func2
echo $num

1.3.2、用echo输出变量

echo 掌握各种转义字符

1.3.3、环境变量的相关操作

export命令

bash的启动文件/登出文件

/etc/profile
/etc/bashrc
$HOME/.bash_profile
$HOME/.bashrc
$HOME/.bash_logout

unset命令

env命令

1.3.4、shell中的一些常用环境变量

1.4、Linux Shell是解释型语言

1.4.1、编译型语言和解释型语言
1.4.2、Linux Shell编程的优势

1.5、小结
chap2 shell编程基础 15(27/334)
2.1、向脚本传递参数

2.1.1、Shell脚本的参数

Shell编程中的函数
testfunc()
{
echo “$# parameters”;
echo “$@”;
}

shell编程中参数引用

0,1,2…
*
@
#
$
!
?

2.1.2、参数的用途

[ps.sh]
#! /bin/sh
ps -eLf | grep $1

mv和mkdir命令

2.2、I/O重定向

2.2.1、标准输入、标准输出与标准错误

cat命令后面的主要参数

2.2.2、管道与重定向

>、<、>>、|

head命令

2.2.3、文件描述符

2.2.4、特殊文件的妙用

/dev/null
/dev/zero
/dev/tty

read命令,我基本没在命令中用过,最多编程中有用

2.3、基本文本检索

grep相关命令
2.4、Unix/Linux系统的设计与shell编程

2.4.1、一切皆文件

Linux文件的后缀名
Linux文件类型

ls命令

2.4.2、UNIX编程的基本原则

2.5、小结
chap3 编程的基本元素 39(51/334)
3.1、再识变量
收获
履历

20190314过了一遍chap1和2,还是有一些知识点不知道的。
shell中的参数引用就不熟。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理