bash脚本返回值应用

Posted lida2003

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bash脚本返回值应用相关的知识,希望对你有一定的参考价值。

bash脚本返回值应用

应该说bash脚本对于linux系统来说具有举足轻重的意义。

这里不做展开,也不做bash脚本介绍。更多的是做一个例子,应用了bash脚本的以下特性:

  1. 输入参数
  2. 函数定义
  3. 调用可执行命令
  4. 脚本递归
  5. 条件判断

脚本具有以下功能:

  1. 支持可执行文件判断
  2. 支持单一文件可执行判断(echo $?查询)
  3. 支持多个文件可执行判断 (直接打印输出)

执行效果:

$ ./bash_script.sh bash_script.sh a.out test.c ttt.txt test.txt
x:./bash_script.sh bash_script.sh
x:./bash_script.sh a.out
x:./bash_script.sh test.c
n:./bash_script.sh ttt.txt
n:./bash_script.sh test.txt

脚本代码:

#!/bin/sh
# HELP
# param: file name
# description: check file existed and exectuable, return 1 or 0 (for NOT existed or unexectuable file)
# x: file existed and exectuable
# n: normal file
# e.g. 
# $ ./bash_script.sh test.txt a.out
# n:./bash_script.sh test.txt
# x:./bash_script.sh a.out
# 

PRINT () 
	if [ $1 = 1 ]; then
		echo "x:$2 $3"
	else
		echo "n:$2 $3"
	fi


HELP () 
	echo $0
	echo "param: file name"
	echo "description: check file existed and exectuable, return 1 or 0 (for NOT existed or unexectuable file)"
	echo "x: file existed and exectuable"
	echo "n: normal file"
	echo "e.g. "
	echo "$ ./bash_script.sh test.txt a.out"
	echo "n:./bash_script.sh test.txt"
	echo "x:./bash_script.sh a.out"


EXEC_FILE_NAME=$0

case $# in
	0)  HELP
		#EXEC_COMMAND="$EXEC_FILE_NAME $EXEC_FILE_NAME";
		#bash $EXEC_COMMAND
		#ERR=$?
		#PRINT $ERR $EXEC_FILE_NAME $EXEC_FILE_NAME
		
		break;;
		
	1) if [ -x "$1" ]; then
			exit 1
		else
			exit 0
		fi
		
		break;;
		
	*)  EXEC_COMMAND="$EXEC_FILE_NAME $1";
		bash $EXEC_COMMAND
		ERR=$?
		PRINT $ERR $EXEC_FILE_NAME $1
		
		shift
		EXEC_COMMAND="$0 $@"
		bash $EXEC_COMMAND
		ERR=$?
		
		if [ $# = 1 ]; then
			PRINT $ERR $0 $@
		fi
esac

开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系

以上是关于bash脚本返回值应用的主要内容,如果未能解决你的问题,请参考以下文章

bash shell 的返回值

如何避免作为 sql 查询输出的一部分返回的字符串值被拆分为 bash/shell 脚本中数组中的不同字段

shell脚本的条件测试与比较

Bash 函数中的返回值

在shell脚本中使用函数的返回值

可恶的bash脚本的执行结