Shell笔记(3)

函数

1、定义格式

[function] funName[()]
{
action;
[return int;]
}
[]代表可选项
#!/bin/bash
demoFun(){
echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"
return 3
demoFun
echo "return val is $?"
  • 返回值可以通过 $? 来获得

2、函数参数

#!/bin/bash
funWithParam(){
echo "第一个参数为 $1 !"
echo "第二个参数为 $2 !"
echo "第十个参数为 $10 !"
echo "第十个参数为 ${10} !"
echo "第十一个参数为 ${11} !"
echo "参数总数有 $# 个!"
echo "作为一个字符串输出所有参数 $* !"
}
调用:
funWithParam 1 2 3 4 5 6 7 8 9 34 73
*****
注意:当参数的个数 >10 的时候,要用${10}来获取

重定向

  • 默认情况下,命令从终端读取、写出内容

1、重定向命令列表

命令 说明
command > file 输出重定向到 file
command < file 输入重定向到 file
command >> file 以追加方式输出冲顶定向到file
n > file 将文件描述符为 n 的文件重定向到 file
n >> file 追加
n >& m 将输出文件n和m 合并
n <& m 输入合并
<< tag 将开始标记tag 和结束标记tag之间的内容作为输入
  • 文件描述符 0 通常是标准输入(STDIN)、1是标准输出(STDOUT)、 2是标准错误输出
示例:
1、who > users
2、echo "haha,xiaosile" >users
3、wc -l [>] a.log 统计行数,[]代表可选 。不加重定向会输出文件名字,加了不输出名字。
4、command < inFile > outFile :从infile读入输出到 outfile

2、一点注意

1、错误重定向到文件:(2代表错误输出)
command 2 > file
command 2 >> file
2、标准输出和错误输出到同一个文件
command > file 2>&1

3、Here Document

  • 一种特殊的重定向方式,将输入输出重定向到一个交互式shell脚本或者程序

  • 基本形式

    command << delimiter
    document
    delimiter
    示例:
    #!/bin/bash
    cat << EOF
    hello , my son
    EOF
    ******结尾的 delimiter 一定要顶格写,前面不能有任何字符,包括空格和tab。开头的会忽略掉空格
  • image-20220328172406502

4、/dev/null 文件

  • 当希望执行某个文件,又不希望输出在屏幕上,可以将输出重定向到 /dev/null
  • 写到它的内容都会被丢弃,尝试读该文件,啥都不会读到。可以起到禁止输出的作用,很有用
将标准输出和错误输出定向到该文件夹
command > /dev/n 2>&1

文件包含

  • Shell可以包含外部脚本,用以方便的封装一些公用的代码作为独立的文件

  • 用法:

    . filename #注意 . 和filenema之间要有一个空格
    source filename
  • 示例:

    1、创建一个没有执行权限的文件
    test1.sh
    #!bin/bash
    url="http://www.baidu.com"
    2、创建test2.sh文件,添加可执行权限
    test2.sh
    #!bin/bash
    . ./test1.sh
    echo "网址:$url"
    source test1.sh
    echo"网址:$ur"
posted @   心是冰冰的  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示