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 如果文件是软链接,则为真
    
  • 相关阅读:
    Visual studio之C# 调用系统软键盘(外部"osk.exe")
    Visual studio之C# 重新定义Messbox的显示窗口位置
    Visual studio之C#的一些常见问题
    C8051F340之USB简介
    CentOS 安装 Sun JDK
    配置Tomcat以指定的身份(非root)运行
    CentOS6 root 用户 vi/vim 无法开启高亮
    删除 Mac OS X 中“打开方式”里重复或无用的程序列表
    快速建立Linux c/c++编译环境
    Ubuntu 安装 Sun JDK
  • 原文地址:https://www.cnblogs.com/yongfengnice/p/15138508.html
Copyright © 2011-2022 走看看