您的位置:首页 > 运维架构 > Shell

linux shell 简单用法

2016-01-26 15:24 495 查看

linux shell 简单用法

一,linux shell 基本介绍

二,linux shell 基本用法

2.1基本语法

2.1.1Shell命令行书写规则

1,在执行Shell命令时多个命令可以在一个命令行上运行,但此时要使用分号(;)分隔命令.

2,长Shell命令行可以使用反斜线字符()在命令行上扩充

echo &pwd
mkdir test1 \
|| cd test1
echo &pwd


2.1.2Shell程序中使用的参数

1,位置参数

由系统提供的参数称为位置参数。位置参数的值可以用N得到,N是一个数字,如果为1,即1。类似C语言中的数组,Linux会把输入的命令字符串分段并给每段进行标号,标号从0开始。第0号为程序名字,从1开始就表示传递给程序的参数。如0表示程序的名字,1表示传递给程序的第一个参数,以此类推。

2,内部参数

上述过程中的0是一个内部变量,它是必须的,而1则可有可无,最常用的内部变量有0、#、?、*,它们的含义如下。

$0: 含命令所在的路径。

$#: 传递给程序的总的参数数目。

$?: Shell程序在Shell中退出的情况,正常退出返回0,反之为非0值。

$*: 传递给程序的所有参数组成的字符串。

3,

2.2条件语句

2.2.1if语句

2.2.3if语句的特殊用法

if 语句的判断可以使用表达式,例如test函数

2.2.4if 语句未归类用法

1,[]判断表达式

判断表达式可以用上述的test函数代替,这里不讨论test函数;[]表达式的内容比较多.只能先描述现用的,具体的以后再补充.

if [ "$1" = "-t" ]
then
if [ -n "$2" ]; then
timer=$2
fi
fi


上述例子中国,第一个[]表达式表示如果第一个参数是”-t”就执行then后语句;第二个表达式表示如果存在第二个参数,就执行then后语句把第二个参数的值给timer(这是个简单的例子,没有做保护).

现在讨论下第一个[]表达式,为什么要用”“;如果用[ $1 = -t ],当有第一个参数的时候,该shell脚本正常执行,当没有第一个参数的时候,该shell脚本会报错,原因(推测)shell脚本是解释型语言,当执行到

[ $1 = -t ]


发现$1 没有,就把上面那句解释为=-t,因此报错.

2.3循环语句

2.3.1while循环

下例简单了做了一个循环,功能是说没10秒打印一次date

timer=10;
while true;do
echo &date "+%B%d%A"
sleep $timer
done


三,linux shell 未归类用法

3.1linux的基本步骤

3.1.1编辑Shell程序
编辑一个内容如下的源程序,保存文件名为date


#!/bin/sh
timer=10; while true;do echo &date "+%B%d%A" sleep $timer done


注意:#! /bin/sh通知采用bash解释。如果在echo语句中执行Shell命令date,则需要在date命令前加符号“&”,其中%B%d%A为输入格式控制符。

3.1.2建立可执行程序

编辑完该文件之后不能立即执行该文件,需给文件设置可执行程序权限。使用如下命令:

u@ubuntue$chmod +x date


注意:上述命令的意思是赋予date文件可执行的权限

3.1.3执行Shell程序

执行Shell程序有下面三种方法:

方法一:

u@ubuntue$./date


方法二:另一种执行date的方法就是把它作为一个参数传递给Shell命令:

u@ubuntue$bash date


方法三:为了在任何目录都可以编译和执行Shell所编写的程序,即把/home/study的这个目录添加到整个环境变量中。

u@ubuntue$xport PATH=/home/study:$PATH
u@ubuntue$bash date


3.2linux shell 执行多个命令的几种方法

3.2.1每个命令之间用;隔开

说明:各命令的执行给果,不会影响其它命令的执行。换句话说,各个命令都会执行,

但不保证每个命令都执行成功。

3.2.2.每个命令之间用&&隔开

说明:若前面的命令执行成功,才会去执行后面的命令。这样可以保证所有的命令执行完毕后,执行过程都是成功的。

3.2.3.每个命令之间用||隔开

说明:||是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功

一条命令为止。

echo &pwd
mkdir test1 && cd test1
mkdir test1 || cd test1
echo &pwd
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: