Shell学习笔记之一

1.先看一个常用的命令

这个命令组合了几个不同的shell命令,shell命令是有这种特性在里面的。就是统一性,简单性。

可以通过管道命令组合多个shell命令。如上面的命令,分别是:

显示当前运行的进程,sort是对进程进行排序,uniq是去除重复的情况,grep -v sh 是去掉,不展示sh这个进程,而more则表示展示更多。

 

同样的,命令也可以这样写:

使得命令执行结果重定向到文本文档中。

 

2. 交互式shell编程的应用

学过编程的人,对这个例子不会感到陌生。唯一可能存在疑惑的地方是 file 是个什么东西?

在这里,file是变量。而$file表示shell编程中的引用变量。当然,也可以使用别的名称,但是显然file这个名称更方便理解。

 

3. Shell中的变量

  shell编程的特点就是简洁,因此在语法、变量使用上有些让人迷惑。但是没办法,就是这样定义实现的!

Shell中的变量定义是随时定义随时可以使用,在使用的时候若想取得变量的值,

需要者变量前面加上美元符,如 $file 就会替换成file的值;

如下:

使用双引号是为了将有空格的字符串包含起来,避免出现错误。

如果使用单引号,或者在$前面加上一个反斜杠/,那么该变量名就不会去替换值,而是输出本身的名称,如下:

 

4. Shell变量的赋值

这个有两种方法,一种是直接赋值,如

file = "My File"

另一种是从标准输入读入,如

 

5. Shell编程中的环境变量

任何编程都要有环境变量,shell也不例外。它更多的依附的是系统本身的变量情况,当然也可以自己指定。

执行命令,env,或者执行命令

都会看到这个变量的值。为什么要加上$这个符号呢,这样才能展示变量的值哦!

而对于win系统来讲,在cmd中,展示环境变量是 echo %HOME%

 

6. Shell编程中的参数变量

先看下面一个例子:

运行这个脚本

显示结果是

Hello
The program test.sh is now running

The second para is b

The first para is a
The env Home is HOME/USR/ 

所以,这里很清楚了,关于shell编程中的参数调用;和C语言中main函数的 char **argv是类似的!

 

ps:

Unix/Linux系统都是支持标准输入、输出、错误重定向的。用0、1、2分别表示标准输入、输出、错误,用符号>和<表示输出和输入重定向。

如打开一个文件,

vi test.txt

也可以这样打开

vi 0<test.txt

更多内容可以google "标准输入、输出、错误"。

 

再ps:为什么写的sh程序不能执行?

请查看该文件的权限,并对该文件添加可执行权限,chmod +x test.sh 即可;

或者是程序命名和系统命令冲突,这时执行的时候使用 ./test.sh 可以将当前程序脚本的完整路径告诉shell。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值