linux的shell编程的函数吗,Linux Shell编程之三函数

函数是什么呢?我们为什么有使用函数呢?

一、函数的相关知识

函数就是就具有某种特定功能的代码打包起来,提供一个接口以供使用。这样做的好处是:一方面可以实现代码复用,例如:许多面向对象的语言,像Java提供的许多类和方法(函数)一样;另一方面是为了代码的模块化编程,这样可以实现多人同时开发代码。

在 shell 中函数主要的作用是实现代码复用,当然利用函数比编写代码可以是代码更简洁,易读。

shell中如何定义函数?

语法格式:

function F_NAME {

函数体

}

或者

F_NAME() {

函数体

}

二、函数示例#!/bin/bash

# description: 将一个外部命令本身和它所依赖的库文件拷贝到指定路径下

# version:0.0

# date:2014-07-23

# author: Alex

# license: GPL

# 模拟根文件系统

ch_root="/mnt/sysroot"

[ ! -d $ch_root ] && mkdir $ch_root

bincopy() {

if which $1 &>/dev/null; then

# local 定义局部变量,它的作用域是本个函数,一般我们在这里尽量使用局部变量,而不使用全局变量

local cmd_path=`which --skip-alias $1`

local bin_dir=`dirname $cmd_path`

[ -d ${ch_root}${bin_dir} ] || mkdir -p ${ch_root}${bin_dir}

[ -f ${ch_root}${cmd_path} ] || cp $cmd_path ${ch_root}${bin_dir}

# 用 return 返回函数的状态值 是一个数字 0-255

return 0

else

echo "Command not found."

return 1

fi

}

libcopy() {

local lib_list=$(ldd `which --skip-alias $1` | grep -Eo '/[^[:space:]]+')

for loop in $lib_list;do

local lib_dir=`dirname $loop`

[ -d ${ch_root}${lib_dir} ] || mkdir -p  ${ch_root}${lib_dir}

[ -f ${ch_root}${loop} ] || cp $loop ${ch_root}${lib_dir}

done

}

read -p "Please input a command: " command

while [ "$command" != "quit" ];do

if bincopy $command ;then

libcopy $command

fi

read -p "Please input a command: " command

done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值