shell学习------四

**注:**基础 —养成良好的习惯,并持之以恒

shell函数

#!/bin/bash    #告诉系统用哪一种解析器
 demoLearn(){
		echo "一个简单的 shell 函数!"
}
echo "------调用函数-------"
demoLearn
echo "----函数成功执行---"
输出结果
------调用函数-------
一个简单的 shell 函数!
----函数成功执行---
#!/bin/bash
learnEva(){
echo "输入一个数字"
read aNum
echo "输入第二个数字"
read anotherNum
echo "输入的两个数字分别为 $aNum$anotherNum !"
return $(($aNum+$anotherNum))
}
echo "下面调用函数"
learnEva     			#函数调用直接写函数名即可;
echo ”输入的两个数字之和为 $? !#函数返回值用 $? 来获得
函数参数

调用函数的同时可以向其传递参数
在函数内部通过 $n 来获取传递的参数

eg:

learnEvd(){
echo "获取第一个参数 $1 !"
echo "获取第二个参数 $2 !"
echo "获取第三个参数 $3 !"
echo "获取第四个参数 $4 !"
echo "获取第五个参数 $5 !"
echo "输出所有参数 $* !"
echo "参数个数: $# 个!"
}
learnEvd 1 2 3 4 6       #函数调用前先定义

注:

  • 当参数个数n>=10的时候 ${n} 用大括号标记参数的边界
  • $? 仅对其上一条指令负责,一旦函数返回后其返回值没有立即保存入参数,那么其返回值将不再能通过 $? 获得。

函数与命令的执行结果可以作为条件语句使用–shell语言中 0 为true 其他数为false

#!/bin/bash
echo "Hello World !" | grep -e Hello
echo $?
echo "Hello World !" | grep -e Bye
echo $?
if echo "Hello World !" | grep -e Hello
then
    echo true
else
    echo false
fi

if echo "Hello World !" | grep -e Bye
then
    echo true
else
    echo false
fi

function demoFun1(){
    return 0
}

function demoFun2(){
    return 12
}

if demoFun1
then
    echo true
else
    echo false
fi

if demoFun2
then
    echo ture
else
    echo false
fi

输出结果为:

Hello World !
0
1
Hello World !
true
false
true
false

grep 是从给定字符串中寻找匹配内容的命令。首先看出如果找到了匹配的内容,会打印匹配部分且得到的返回值 $? 为 0,如果找不到,则返回值 $? 为 1。

shell 输入/输出重定向–(简单了解)-感受不深

>大于输出,<小于输入

命令说明
command > file将输出重定向到file
command >> file将输出以追加的方式重定向到file
n>&m将输出文件m和n合并
<< tag将开始标记和结束标记tag之间的内容作为输入

输出重定向实例

注:输出重定向会覆盖文件内容,如果不希望文件被覆盖可以采用>>追加到文件末尾

$ echo "我爱中国!河北加油!" > users  #输出重定向到文件users
$ cat users   #cat 命令查看users文件 
我爱中国!河北加油!
$

同时替换输入和输出

command1 < infile > outfile   #执行command1,从文件infile读取内容,然后将输出写入到outfile中。

特殊的重定向——Here Document

command << delimiter
		document
delimiter   # 将两个delimiter 之间的内容(document)作为传入传递给 command

注意:

  • 结尾的delimiter 一定要顶格写,前面不能有任何字符,后面也不能有任何字符,包括空格和 tab 缩进。
  • 开始的delimiter前后的空格会被忽略掉。

实例—在命令行中

$ wc -l << EOF
    world
    watching
    CHINA
3          # 输出结果为 3 行
$

在脚本中

#!/bin/bash

cat << EOF
    world
    watching
    CHINA
EOF

执行并输出结果

$ chmod +x ./test.sh  #设置执行权限
$ ./test.sh    		#执行脚本
    world
    watching
    CHINA
/dev/null 文件

如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null:

$ command > /dev/null
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值