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 如果文件是软链接,则为真
原文地址:https://www.cnblogs.com/yongfengnice/p/15138508.html