shell脚本

原创 2015年11月18日 09:05:47

shell脚本开头一般会标识调用的是那个shell,格式#!/bin/sh,运行脚本文件一般有两种方式sh 脚本名字和./脚本名字
这两种方式区别在于,第一种脚本文件开头可以不用写#!/bin/sh,而第二种必须写。
在系统中打开中断输入命令前,系统一般会进行对该终端初始化操作,该初始化操作由~/.bash_rc来完成,查看该文件如下:
# .bashrc
# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
该文件重新定义了rm cp mv命令,然后又进入/etc/bashrc来完成初始化

在终端驶入多个命令时,可以用;来连接各个命令。例如
[root@localhost ~]# ls;cd /usr
anaconda-ks.cfg  httpdump  install.log  install.log.syslog
[root@localhost usr]#
输入ls;cd /usr,依次执行了ls和cd /usr命令

在脚本中有两种方式来打印信息
1.echo
例如:echo "this is test"
[root@localhost usr]# echo "this is test"
this is test
打印的字符串可以用双引号,单引号,不带任何东西
如果字符串中带有特殊字符,那么这个字符不能在双引号中,否则会出错,如果要在双引号中引用特殊字符,那么得用转义字符\
例如:echo "!"
[root@localhost usr]# echo "!"
-bash: !: event not found
[root@localhost usr]# echo !
!
[root@localhost usr]# echo "\!"
\!
如果要打印变量,那么就不能带有双引号或单引号,例如echo $pa,打印变量pa的值,$指取pa的值
一般echo输出内容后会在字符串末尾添加一个换行符,如果不需要换行符,可以使用echo -n,如果字符串中包含转义字符,那么得用echo -e选项来表明该字符串中有转义字符,如果不加-e选项,转义字符会以字符

形式输出
2.printf
和C语言中printf类似,以格式化形式输出
例如:

[root@localhost usr]# printf "%d,%s\n" 11 12312312
11,12312312

在shell脚本中,变量是没有类型的,都是以字符串形式存储。输出变量时,变量前应带上$表明这个是变量或者变量用中括号括起来再在前面加上$,如果要获得变量的长度,比如有变量TEST,获取该变量的值

${#TEST}。给变量赋值时应注意格式,比如TEST = "hello word"(值没有空格的话,可以不用双引号),这种格式是错误的,等号两边不能有空格,TEST="hello word"。
在shell中子进程可以继承父进程的变量,比如环境变量,可以编写shell脚本时直接调用环境变量,可以输入expor或env,设置环境变量export 变量名=值。给变量增加值,export 变量名="$变量名;值"


shell技巧
如何得知当前使用的shell?
echo $SHELL
echo $0
两个命令都会打印当前使用的shell

如何检查当前运行脚本的用户是不是root用户
检查$UID的值是否为0,为0则是root用户

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

学习shell脚本遇到的小知识!.txt

  • 2017年11月15日 16:03
  • 7KB
  • 下载

Shell脚本学习指南.pdf

  • 2016年06月16日 14:59
  • 33.98MB
  • 下载

Shell脚本调试的几种方式

脚本调试的主要工作就是发现引发脚本错误的原因以及脚本源代码中定位错误行。归纳汇总了下,调试脚本时,我们可能会用到的几种方式,比如说:最简单的通过echo的方式,通过set -x的方式,比较高端一点的通...

shell脚本杀死进程及所有子进程

在一个C++项目中,程序启动时通过systemdia

shell脚本指南

  • 2015年03月03日 18:02
  • 1.51MB
  • 下载

shell脚本教程详细讲解

  • 2015年08月19日 14:49
  • 810KB
  • 下载

PHP调用shell脚本注意事项

1、调用的路径,相对路径有时候不是很靠谱。 2、被调用的脚本有没有执行权限。 3、被调用的脚本能不能及时return,因为默认情况下php的页面只有30sec的执行周期。   1...
  • superxgl
  • superxgl
  • 2011年02月22日 12:04
  • 11970

Shell脚本学习指南_中文版.pdf

  • 2017年10月31日 10:49
  • 28.02MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:shell脚本
举报原因:
原因补充:

(最多只允许输入30个字)