zoukankan      html  css  js  c++  java
  • shell脚本学习简单记录笔记

    ------------------------------ 以下是fun.sh文件 -------------------------------------
    #!/bin/bash
    sed -i 's/
    //' $0	#替换本文件的
    为空,因为我是在window下编写linux上执行的
    
    function max(){
    	if [ $# -ne 2 ];then
    		echo "必须两个参数,调用方法:max p1 p2"
    	else
    		if [ $1 -gt $2 ];then
    			return $1
    		else
    			return $2
    		fi
    	fi
    }
    
    ------------------------------ 以下是main.sh文件 -------------------------------------
    #!/bin/bash
    sed -i 's/
    //' $0	#替换本文件的
    为空,转window换行符
    
    为linux换行符
    
    
    # $0:第0个参数即当前程序名称,$$当前进程号
    # $1:第1个参数,$2...以此类推
    # $@、$*:所有的参数列表
    # $#:参数个数
    # ${!#}:最后一个参数
    # $( pwd ):调用pwd命令,或者使用`pwd`
    # read -p "input" name :使用name接受输入
    # ()由子shell完成,{}由当前shell完成
    # ${str/old/new}:new替换第一个old,${str//old/new}:new替换所有old
    # test -e file等价[ -e file]都是判断file是否存在,再使用$?查询上次执行结果
    # declare -i s:强制把变量s当作int类型运算
    
    # 文件测试:-e存在,-d目录,-f文件,-r可读,-w可写,-x可执行,
    # 文件测试:-L符号连接,-c字符设备,-b块设备,-s文件非空
    
    # 逻辑条件:-a and,-o or,!取反
    # 数值判断:-eq,-ne,-gt,-ge,-le,-lt
    # 字符串判断:=相等,!=不等,-z空串,-n非空
    
    # 控制语句:if [ ];then else elif fi 或 for(());do done 或 for i in list;do done
    # 控制语句:while [ ];do done 或 until [];do done |
    
    # 函数调用:函数名 参数1 参数2...,对应的接收参数$0,$1,$2...,return结果使用$?查询
    # source导入其他shell脚本文件,source fun.sh导入fun.sh脚本文件
    
    
    echo "last params is : ${!#}"
    
    source fun.sh	#导入fun.sh脚本
    max 100 50		#调用fun.sh脚本的max方法
    en=$?			#使用$?查询上一次的执行结果,即调用max方法的结果
    
    echo "max=$en"
    
    ---最后命令行执行:bash main.sh 即可测试
    ---遇到Window换行符报错时也可以手动 sed -i 's/
    //' bash main.sh 处理掉window换行符再执行bash main.sh
    
    shell文件判断参数:
    -e filename 如果 filename存在,则为真
    -d filename 如果 filename为目录,则为真 
    -f filename 如果 filename为常规文件,则为真
    -L filename 如果 filename为符号链接,则为真
    -r filename 如果 filename可读,则为真 
    -w filename 如果 filename可写,则为真 
    -x filename 如果 filename可执行,则为真
    -s filename 如果文件长度不为0,则为真
    -h filename 如果文件是软链接,则为真
    
  • 相关阅读:
    关于一些Spring MVC控制器的参数注解总结
    如何制作知识图谱
    关于本体的一些知识需要了解
    分享一些关于Lucene的心得
    java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
    JAVA小游戏之两个物体碰撞产生的碰撞检测
    IT界程序员几大恶习能立即让你变穷,你有吗?
    JAVA图形界面常用知识点总会《代码分析》
    程序员解决问题的60个策略
    app微信支付-java服务端接口 支付-查询-退款
  • 原文地址:https://www.cnblogs.com/yongfengnice/p/15138508.html
Copyright © 2011-2022 走看看