Linux下的shell脚本,常用shell命令介绍

1、概念

(一)shell和shell脚本是两个不同的概念,shell一个用 C 语言编写的程序,而shell脚本是用shell编写的脚本程序。
(二)业界所说的 shell 通常都是指 shell 脚本,但hell 和 shell script 是两个不同的概念。
(三)shell编程,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
(四)shell的种类众多,我们通常只使用Bourne Shell(/bin/sh) 和 Bourne Again Shell(/bin/bash)两种。

2、在文件开头设置解析器

shell环境:一般使用Bourne Again shell(/bin/bash)
创建脚本文件可以使用任意的文本编辑器,如:vi text.sh
shell脚本文件的开头是:#!/bin/bash
 

 其中#!是一种标记,告诉系统使用哪个脚本解析器(哪种shell)来处理shell脚本

#!后面的路径表示用/bin/bash的程序解析脚本文件中的shell程序

3、运行编写好的shell脚本

(方法一)把上面的shell脚本保存后,在命令行可以透过./text.sh来运行shell脚本

(方法二)把shell脚本作为解析器参数运行,/bin/sh test.sh


4、shell脚本的变量

4.1、定义变量

shell中定义变量不需要类型,如定义一个变量count_1,count_2如下:
count_1=100
count_2
变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样

4.2变量的使

使用已经定义的变量要在变量前方加$符号,如:echo $count_1
#!/bin/bash
echo "Hello World !"
count_1=100
count_2="Hell0 World"
echo $count_1
echo count_2
运行结果:
Hello World !
100
count_2
在echo count_2中缺少了$,在输出count_2时,系统不能识别它是一个变量,只当作字符串进行输出。
在变量中加括号echo ${your_name}等效于echo $your_name。
在变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界。

4.3、通过语句给变量赋值

例如:for file in `ls /etc`
上述表示,把/etc目录下的文件或目录名称,依次赋值给变量file。

4.4、只读变量

通过readonly 命令,可以将变量定义为只读变量,之后只读变量的值不能被改变。

4.5、删除变量

使用 unset 命令可以删除变量。例如 : unset variable_name

5、shell的字符串

5.1、字符串的单引号和双引号

(一)单引号字符串:  单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
注意:当单引号中存在单引号时, 作为字符串拼接使用。例如 :
your_name="runoob"
greeting_2='hello, '$your_name' !'
echo $greeting_2
结果:hello, runoob !
(二)双引号字符串:双引号里可以有变量、双引号里可以出现转义字符。

 输出结果为:Hello, I know you are "runoob"!

5.2、获取字符串长度,用#号

 

6、Shell 数组

格式:数组名=(值1 值2 ... 值n) ,数组元素用"空格"符号分割开。
例如:array_name=(value0 value1 value2 value3)
获取数组的长度

7、Shell 传递参数

在执行 Shell 脚本时,可以向脚本传递参数,而在脚本内获取参数的格式为:$n。
例如:
#!/bin/bash
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
输出结果:
第一个参数为:1
第二个参数为:2
注意:$# 表示传递到脚本的参数个数   ;  $@表示以"$1" "$2" … "$n" 的形式输出所有参数

8、Shell 传递参数作为可执行文件的输入(程序运行时,fgets()的输入)

编译脚本文件vi client.sh
#!/bin/bash
echo "$1 $2 $3" | ./client
上述表示把三个参数输入client程序中
修改client.sh文件的权限为可执行文件
chmod 777 client.sh
执行client.sh脚本
./client.sh 1 2 3
这样就把1 2 3 三个参数传入程序./client中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值