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
相关文章推荐
- 那些提升工作效率的shell命令
- shell 编程
- Cygwin安装curl后 bash: curl: command not found
- Genymotion shell 命令行
- shell之脚本分析
- 监控流量shell脚本
- shell中${}的妙用
- 嵌入式linux:Ubuntu系统下bash和dash的区别(修改默认sh为bash)
- export 原理解析 (Shell Script)
- Windows系统Shell通过Socket转发
- 【shell】删除重复文件
- centos shell编程3【告警系统】 没有服务器端和客户端的概念 main.sh mon.conf load.sh 502.sh mail.php mail.sh disk.sh 第三十七节课
- Hadoop Shell命令
- xshell和xftp
- 如何使用shell脚本对android手机的操作---初级篇1
- Xshell
- shell判断文件是否存在
- shell(1)
- shell删除指定时间之前的文件
- bash: chkconfig: command not found