乐趣区

《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 中的参数引用就不熟。

退出移动版