shell脚本学习
/var/log/下日志文件时系统文件,必须有root权限:
$UID是系统的全局变量:
make && make install 表示前面成功了,执行后面的
make || make install 表示前面不成功,执行后面的
清空日志的三种方法:适合保留文件,清空内容的场合
①echo " ">test.log或echo > test.log
②>test.log
③cat /dev/null > test.log
22222222222:shell脚本的基础知识
shell是弱类型语言:(语法宽松,不严格)较为通用
通用的shell有标准的Bourne shll(sh)和c shell(csh)其中Bourne shell(sh)已经被bash shell取代
shell脚本的建立:
tac /etc/init.d/nfs 将文件倒着显示
相当于:head -1 /etc/init.d/nfs
①脚本开头
一个规范的shell脚本的第一行会指出由哪个程序(解释器)来执行脚本中的内容,在
333333333333linux bash 编程中一般为:
①解释器
#!/bin/bash
或
#!/bin/sh
②在linux下sh 相当于bash,
#!又称幻数,在执行bash脚本的时候,内核会根据它来确定用哪个程序来解释脚本中的内容
,这一行必须在脚本顶端的第一行,如果不是第一行,则为注释
Centos.和RedHat linux下默认的shell均为bash
④如果脚本的开头不指定解释器,那么,就要用对应的解释器来执行脚本
脚本注释
#号
444444444444444shell脚本的执行
shell脚本的执行
当shell脚本以非交互的方式运行时,它会先查找环境变量ENV,该变量指定了一个,环境文件(通常是.bashrc),然后从改环境变量文件开始执行,当读取了ENV文件后,SHELL才开始执行shell脚本中的内容。
Shell脚本的执行通常可以采用以下三种方式:
①bash script-name或 sh script-name(推荐使用)
②path/script-name或./script-name(当前路径下执行脚本)
③source script-name或. script-name# 注意点号
第一种方法是当脚本文件本身没有可执行权限(即文件X位为-号)时常使用的方法,这里推荐用bash执行,或者文件开头没有指定解释器,
第二种方法需要先将脚本文件的权限改为可执行(即文件加X位),具体方法:chmod u+x
script-name 或者chmod 755 script-name然后通过脚本路径,就可以直接执行脚本了
第三种方法通常是使用source或者"." 号读入或加载指定的shell脚本文件语句,,然后,依次执行指定shell脚本文件san.sh中的所有。语句将作为当前父shell脚本father.sh进程的一部分运行,因此,使用source或者“.”点号等的可以将san.sh自身脚本中的变量的值,或者函数等的返回值传递到当前的父shell脚本father.sh中使用,这是第三种方法和前两种方法的最大区别
通过source 或"." 点号加载执行过的脚本,在脚本结束后脚本中的变量(包括函数)值,在当前shell中依然存在,而sh和bash则不行,因此,在做shell脚本开发时。如果脚本中有需求引用其他脚本的内容,或者配置文件时,做好用“.” 点号或者source在脚本开头加载改脚本或配置文件,然后在下面的内容用可以调用source加载的脚本及文件中的变量及函数等内容。
笔试题:
已知如下命令及返回结果,请问echo $user的返回的结果为()
[oldboy@test~]cat test.sh
[oldboy@test~]user=`whoami`
[oldboy@test~]sh test.sh
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。