Shell学习笔记

    xiaoxiao2021-12-15  34

    2016-12-08

    .bashrc文件主要保存个人的一些个性化设置,如命令别名、路径、自定义函数等

    每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的设置,使之生效。 一般会在.bash_profile文件中显式调用.bashrc。登陆linux启动bash时首先会去读取~/.bash_profile文件,这样~/.bashrc也就得到执行了,你的个性化设置也就生效了。 Shell参数扩展${parameter:+expression},如果parameter有值且不为空,则使用expression的值

    数值计算:

    整数:let、[]、(()) 浮点数:expr、bc

    如:

    let result=no1+no2

    result=$[no1+no2]也可result=$[$no1+$no2]

    使用(()),变量名前要加$

    result=$((no+1))

    输出重定向:

    >覆盖文件,如:echo "This is a sample text1">temp.txt

    >>追加到文件中,如:echo "This is a sample text2">>temp.txt

    temp.txt的内容为“This is a sample text1\nThis is a sample text2"

    文件描述符0、1、2

    0——stdin(标准输入)

    1——stdout(标准输出)

    2——stderr(标准错误)

    tee命令可以将前一个命令的输出作为stdin重定向到文件中,默认覆盖,-a表示追加

    echo who is this | tee -a temp.txt

    2016-12-09

    定义数组

    var=(1)

    var[0]="a"

    var[1]="b"

    定义关联数组(hash)

    declare A var

    var[apple]="100dollars"

    var=([apple]="100dollars" [orange]="50dollars")

    echo ${var[*]}

    获取终端信息

    tput 、stty

    日期处理

    date +%s 获得当前秒数

    星期  %a(Sat) %A(Saturday)

    %b(Nov)%B(November)

    %d

    固定格式日期 %D(10/18/10)

    %y(10)%Y(2010)

    小时 %I或%H

    分钟 %M

    %S

    纳秒 %N

    UNIX纪元时(秒) %s

    延时命令sleep no_of_seconds

    调试脚本

    set -x 在执行命令时显示参数和命令

    set +x禁止调试

    set -v当命令进行读取时显示输入

    set +v禁止打印输入

    将bash文件中的shebang从#!/bin/bash改成#!/bin/bash -xv,不用其他选项就可以启用调试功能了

    函数和参数

    定义函数:

    function fname()

    {

    statements;

    }

    调用函数:fname;

    加参数调用:fname arg1 arg2;

    函数中访问参数的方法:

    $1第一个参数;$2第二个参数;$n第n个参数

    $@被扩展成”$1""$2""$3"等

    $*扩展成“$1c$2c$3",其中c是IFS的第一个字符

    导出函数,函数的作用域就可以扩展到子进程中

    export -f fname

    $?可以给出命令的返回值(退出状态)

    转载请注明原文地址: https://ju.6miu.com/read-1000238.html

    最新回复(0)