【linux】学习6

鸟哥13章的东西

shell script速度较慢,适合用于系统管理,但不适合处理大量数值运算

 

var=$((运算内容)) 可以用来做变量的加减乘除求余运算

total=$(($firstnum*$secnu))

declare -i total="$firstnum*$secnu"

上面两句功能一样,建议用第一种

echo -e "\nYour full name is: $firstname $lastname"

-e表示后面 \表示转义,例子表示了在echo中显示两个变量的方法

file1=${filename}${date1}

一个变量是另两个变量的连接的写法

 

执行script

sh scriptname 在子进程中执行,变量不会出现在父进程

source scriptname 在父进程中执行,变量会出现在父进程

 

test :测试

test -e /test && echo "exist" || echo "Not exist"  测试文件名/test是否存在 目录文件都可以

test -f sh03.sh && echo "exist" || echo "Not exist" 测试文件是否存在 必须是文件

test -d abc && echo "exist" || echo "Not exist" 测试目录是否存在 必须是目录

下面代码测试文件是否存在 以及文件的执行权限

read -p "Please input a filename: " filename
test -z $filename && echo "You MUST input a filename." && exit 0
test ! -e $filename && echo "The filename '$filename' DO NOT exist" && exit 0
test -f $filename && filetype="regulare file"
test -d $filename && filetype="directory"
test -r $filename && perm="readable"
test -w $filename && perm="$perm writable"
test -x $filename && perm="$perm executable"
echo "The filename: $filename is a $filetype"
echo "And the permissions are: $perm"

[]: 表判断,但是挨着括号的两端必须都是空格

[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK, CONTINUE" && exit 0 判断yn等于Y或y,任意一个都返回true

 

脚本后面带参数:

$0 代码文件名 $1代码后面第一个参数  $2代码后面第二个参数....

$@ 代表除文件名之外的所有参数  $# 表后面接的参数个数

下面例子输入少于两个参数会退出 会显示所有参数和第一第二个参数

echo "The script name is --> $0"
echo "Total parameter number is --> $#"
[ "$#" -lt 2 ] && echo "The number of parameter is less than 2. Stop here." && exit 0
echo "Your whole parameter is --> '$@'"
echo "The 1st parameter  --> $1"
echo "The 2nd parameter  --> $2"

 

shift num: 移除后面num个变量

 

条件判断式

if [] ; then

elif []; then

else

fi

if [ "$1" == "hello" ]; thenecho "Hello, how are you?"
elif [ "$1" == "" ]; thenecho "You Must input parameters, ex> {$0 someword}"
elseecho "The only parameter is 'hello', ex> {$0 hello}"
fi

 

netatat -tuln 获得目前主机启动的服务

80:www

22:ssh

21:ftp

25:mail

检测常见端口

echo "Now, I will detect your linux server's services!"
echo -e "The www, ftp, ssh and mail will be detect!\n"testing=$(netstat -tuln | grep ":80 ")
if [ "$testing" != "" ]; thenecho "WWW is running in your system."
fitesting=$(netstat -tuln | grep ":22 ")
if [ "$testing" != "" ]; thenecho "SSH is running in your system."
fitesting=$(netstat -tuln | grep ":21 ")
if [ "$testing" != "" ]; thenecho "FTP is running in your system."
fitesting=$(netstat -tuln | grep ":25 ")
if [ "$testing" != "" ]; thenecho "MAIL is running in your system."
fi

 

case 条件判断

case $变量名称 in"第一个变量内容“程序段 ;;"第二个变量内容“程序段 ;;  *)其他变量内容的程序段exit 1;;
esac

 

函数:

function fname(){程序段
}    

后面接内置参数和shell的内置参数方法一样 也是$1 $2 ...

 

循环:

买足条件就循环

while [ condition ]
do程序段
done

满足条件就结束循环

until [ condition ]
do程序段
done

 

for循环

for var in con1 con2 con3 ...
do程序段
done
for ((初始值;限制值;执行步长))
do程序段
done

 

 

调试script

sh [-nvx] scriptname.sh

-n 不执行,仅检查语法

-v 执行前把script内容输出到屏幕

-x 将使用到的script内容输出到屏幕   debug很有用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460705.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Makefile嵌套执行make

概述 在一个大的工程文件中,不同的文件按照功能被划分到不同的模块中,每个模块可能都会有自己的编译顺序和规则。如果在一个 Makefile 文件中描述所有模块的编译规则,就会显得很杂乱,执行时也会很不方便。 如果在不同的模块中分别…

core--线程同步(内核模式)

什么是内核?windows操作系统为了更好的管理进程,线程,创建了很多数据结构,这些数据结构运行在windows的底层,并不开放给开发人员;所以开发人员称这些结构为内核,但是为了开发人员能够使用&#…

hive cli启动判断hadoop version的问题

测试环境的hive cli启动时报错:Unable to determine Hadoop version information.hive是一个shell:使用sh -x跟踪运行过程,可以看到其通过hadoop version获取hdfs的版本相关的代码如下:# Make sure were using a compatible version of Hadoo…

Makefile变量的高级用法:变量的替换引用、变量的嵌套使用

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。 我们之前已经学习过变量的定义和基本的赋值运算,我们可以更深入的了解一下变量的一些高级的用法。高级使用方法有两种:第一种是变量的替换引用,第二…

SAP Study Notes: BW Queriy-Variables(变量)

About Variable:1.Variable 是和InfoObject绑定的,可用于任何含有该IO的query中。2.Variable有以下几种类型:Characteristic:用于限制Char。 Text:用于在报表动态显示文本。 Hierarchy:用于限制Hierarchy。 Hieararchy…

Makefile中的通配符

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。 Makefile 是可以使用 shell 命令的,所以 shell 支持的通配符在 Makefile 中也是同样适用的。 shell 中使用的通配符有:"*","?&qu…

SCCM2012 R2集成WSUS服务器-4:部署软件更新组

在之前的文章中,我们已经创建好的软件更新组,也下载好了补丁,下面我们来部署这些补丁。右击软件更新组,选择”部署“,如图。进入到部署软件更新向导,输入部署的名称,并指定部署的集合。如图。在…

JavaScript Iframe富文本编辑器中的光标定位

最近在项目中碰到一个比较棘手的问题: 在iframe富文本编辑器中,有个工具栏,这个工具栏在iframe标签之外,工具栏上有一个按钮,点击该按钮向iframe正在编辑中的光标处插入一个图片,图片会插入到当前光标所在的…

Makefile目标类型大汇总

模式规则中的目标形式是多种多样的,它可以是一个或多个的文件,也可以是一个伪目标,或者其他的类型,下面是对这些类型的详细说明。 强制目标 如果一个目标中没有命令或者依赖,并且它的目标不是一个存在的文件名&#xf…

网站故障排查几个简单步骤

1、top命令查看cpu消耗多少(id%的值和%cpu要是一直是几百就是问题了。%wa要是大于30%也是压力大了)。还有看负载的3个值(和cpu线程是1比1关系。要是值大于线程书,那么也是压力过大。)top命令要是发现cpu消耗过多,可以知道是哪几个进程了。2、查看硬盘使用…

isset、empty、var==null、is_null、var===null详细理解

//isset: 判断变量是否被初始化 //它并不会判断变量是否为空,并且可能用来判断数组中元素是否被定义 //听说在数组用isset与array_key_exists高出4倍 $a ""; $ar[c] ""; if(!isset($a)){echo $a not isset\r\n; }else{echo $a iss…

Makefile中常见的错误信息

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。 make 执行过程中所产生错误并不都是致命的,特别是在命令行之前存在 "-"、或者 make 使用 "-k" 选项执行时。 make 执行过程的致命错误都带有前缀字符…

Javascript中call函数和apply函数的使用

Javascript 中call函数和apply的使用: Javascript中的call函数和apply函数是对执行上下文进行切换,是将一个函数从当前执行的上下文切换到另一个对象中执行,例如: sourceObj.method.call(destObj,params1,params2) 是将sourceObj中…

Makefile隐含规则

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。 隐含规则的含义 隐含规则,就是我们做出一些具体的操作后,系统自动推导完成。 编写 Makefile 的时候,可以使用隐含规则来简化Makefile 文件编写。 下…

WIN7 Wireshark: There are no interfaces on which a capture can be done

有的时候我们在Windows7的环境下使用Wireshark的时候,比如点击【Interface List】的时候,出现错误。 错误内容如下: There are no interfaces on which a capture can be done. 这个错误是因为系统没有启动NPF服务造成的。 解决的办法很简单&…

搭建wordpress开发环境

安装php PHP下载地址:http://windows.php.net/download/ 和MySQL一样,下载包是一个zip压缩包,只需解压缩即可。将它解压缩到 D:\WNMP\php-5.5.6-Win32-VC11-x64目录下: 配置php 将php.ini-production文件复制并重命名为php.ini,并…

GCC和CC的区别

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 参考博客:Difference Between GCC and CC Compiler - Ask Any Difference 参考博客:Linux新手学堂:CC与GCC的区别概括介绍 - Prayer - C博客 总结 1、作用 GCC和CC都是…

Leetcode Copy List with Random Pointer

A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. 对于这道题最开始用的是用一个数组存储新建的节点,然后对random的索引时比较快。 后来在…

sharepoint 2007页面显示真实的错误信息

打开下面path的web.config文件:C:\Program Files\Common Files\Microsoft Shared\Web ServerExtensions\12\TEMPLATE\LAYOUTS修改&#xff1a;<system.web>... <customErrors mode"Off" />...</system.web>如果没有就添加&#xff1a;<SharePoi…

Shell循环(for,while,until,break与continue)

以下内容源于C语言中文网的学习与整理&#xff0c;如有侵权&#xff0c;请告知删除。 一、for循环 for循环一般格式为&#xff1a; for 变量 in 列表 docommand1command2...commandN done 列表是一组值&#xff08;数字、字符串等&#xff09;组成的序列&#xff0c;每个值通过…