如果系统学习,使用<<高级Bash脚本编程指南>>这本书
shell初级编程 by hayabusa
3.1讲义
3.1.1 shell
set //所有变量
unset //取消变量设置
export 变量 //导出变量,使其全局可用
env //环境变量
shell基本格式:
#!/bin/bash
//edit...
chmod u+x script
$(command)或者`command` //命令嵌套的写法
3.1.2
3.1.2.1
stdin 标准输入
stdout 标准输出
stderr 标准错误输出
3.1.2.2重定向:
> 输出重定向
2> 错误重定向
&> 全部重定向
tr 'a-z' 'A-Z' < var3.sh
3.1.2.3
管道:前者输出作为后者输入
ls -l /etc | less
3.1.2.4
多目标重定向
command |tee t2.txt
3.1.3正则表达式
^ $ *
3.1.4 shell 带参数
$1 $2 $* $#
3.1.5 条件判断
= -eq
!= -ne
-gt
-lt
-ge
-le
3.1.6控制流程 -a -o !
while 条件
do
命令
done
if 条件
then 命令(可以嵌套if)
elif 条件
then 命令
else
命令(可以嵌套if)
fi
@#!!//数值运算加两对圆括号
case
case 值 in
模式)
命令
;;
模式)
命令
;;
...
esac
for 变量 in 'seq 1 100'
do
command
done
//break continue 类似于C:exit直接退出,可带返回值
until 条件
do
//command
done
3.2 扩展
3.2.1
读老师的程序偷师到的几个命令
basename /path/filename //printf the real name of a file
cut -d: -f2 // 这个命令用好了非常的强大
3.2.2 userlist.sh
# list all the users
#!/bin/bash
n=0;
for i in `cut -d: -f3 /etc/passwd`
do
((n=n+1))
m=`echo "$n " |tr ' ' 'p'`
if [ $i -le 60000 -a $i -ge 500 ]
then cut -d: -f1 /etc/passwd|sed -n $m
elif [ $i = 0 ]
then cut -d: -f1 /etc/passwd|sed -n $m
fi
done
3.3 问题
3.3.1
caseselect 文件中的此句(鄙视自己,看了解释还不懂
)
echo "`basename $0`:This is not between 1 and 5" >&2
已解决:
这句话的意思就是将stdout重定向到stderr之中,但是由于stdout与stderr的默认输出都是monitor,所以看不到效果,下边的代码好些:
echo "`basename $0`:This is not between 1 and 5" 2>ver >&2
分享到:
相关推荐
《Linux与Unix Shell编程指南》是一本面向各个层次用户的实用教程,无论你是初涉Linux或Unix系统的新人,还是已经有一定经验的老手,都能从中获益。Shell编程是Linux和Unix系统中的重要一环,它提供了命令行接口,...
无论你是初涉SHELL编程的新手,还是寻求提升经验的开发者,这本《LINUX与UNIX SHELL编程指南》都能为你提供宝贵的指导。 通过阅读这本书,你可以深入理解SHELL编程的精髓,学会如何利用SHELL脚本来解决实际问题,...
总的来说,Linux公社技术文章合集是一份全面而深入的Linux学习资料,无论你是初涉Linux的新手,还是寻求技能提升的开发者,都能从中受益匪浅。通过学习和实践,你将能更好地理解Linux的工作原理,提高操作效率,并为...
《Linux程序设计(第三版)》是一本深受...通过阅读《Linux程序设计(第三版)》,你将深入理解Linux环境下的程序设计原理,掌握必备的工具和技巧,无论你是初涉Linux开发还是寻求进阶,这本书都将是你不可或缺的指南。
本文将详尽地探讨Linux系统的基础知识,以及它在嵌入式系统中的应用,为那些初涉Linux和嵌入式领域的学习者提供全面的指南。 一、Linux系统概述 Linux是一种自由和开放源代码的操作系统内核,由芬兰程序员林纳斯·...
《UNIX环境高级编程》是一本深受程序员和系统管理员喜爱的经典之作,尤其对于初涉Linux领域的人来说,这本书无疑是一份宝贵的指南。它深入介绍了在UNIX操作系统环境下进行程序开发、系统管理及网络通信的各种技术和...
在本“Linux课程实验”中,我们将深入探讨Linux操作系统的核心概念和实际操作,这对于初涉嵌入式领域的学习者来说是一份宝贵的指南。通过一系列的实验,你可以掌握Linux系统的基本使用、管理技巧以及与嵌入式系统...
标题 "Unix" 指涉的是一个历史悠久且广泛使用的操作系统家族,它以其强大的命令行界面、文本导向的工具以及开放源码的特性而闻名。Unix系统最初由肯·汤普逊(Ken Thompson)和丹尼斯·里奇(Dennis Ritchie)在1960...
通过两者结合,可以覆盖到Linux、macOS和Windows这三种主要操作系统。 3. **跨平台编译**:`cross-compilation`指的是在一个平台上为另一个平台编译代码。在Rust中,通过`rustc`的`--target`参数或Cargo的`target`...
标题 "packet-broker-nixpkgs" 指涉的是一个专为P4数据包代理在Nix包管理环境中创建的软件包。P4(Programming Protocol-Independent Packet Processors)是一种编程语言,允许用户定义网络数据包处理的行为,而...