shell 脚本 source 技巧

发布时间:2021-12-15 19:11:00
更新时间:2021-12-15 19:15:13
文章作者:ZHUANGZHUANG

调用外部 Shell 脚本的函数及变量

mkdir test && cd test
touch {func,test}.sh
chmod +x {func,test}.sh
#!/bin/bash
# func.sh
function echo_color(){
    local msg=$1
    echo -e "\033[1;31m${msg}\033[0m"
}
func_var=123
echo 456
#!/bin/bash
# test.sh
source func.sh
echo_color $func_var

截屏2021-12-15 下午6.58.06

避免重复调用

#!/bin/bash
# test.sh
source func.sh
source func.sh
echo_color $func_var
​​​​​​​‌​‌​‌‌‌​‍​​​​‌​‌​​‌​​‌‌​‍​‌​‌​‌‌‌‌‌‌​​‌​‍​​​​‌‌​​​​​‌‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​‌​​‌​‌‍‌​‌‌​‌‌‌‍‌​‌​‌​‌​‍‌​‌‌‌‌‌​‍‌​‌‌​​​‌‍‌​‌‌‌​​​‍‌​‌​​‌​‌‍‌​‌‌​‌‌‌‍‌​‌​‌​‌​‍‌​‌‌‌‌‌​‍‌​‌‌​​​‌‍‌​‌‌‌​​​‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​​‌​‌‌‌‌‌‌‌‌​​​‍​‌‌​​‌‌‌​‌‌​​‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​​​‌‌​​‍‌​​‌​‌‌‌‍‌​​‌‌​‌​‍‌​​‌​​‌‌‍‌​​‌​​‌‌‍‌‌​‌‌‌‌‌‍​‌‌‌‌‌‌​‌‌‌​​‌​‌‍​​‌‌​​​‌‌​‌​​‌‌‍‌‌​‌‌‌‌‌‍‌​​​‌‌​​‍‌​​‌​​​​‍‌​​​‌​‌​‍‌​​​‌‌​‌‍‌​​‌‌‌​​‍‌​​‌‌​‌​‍‌‌​‌‌‌‌‌‍​​‌‌‌​‌​‌‌‌‌‌‌‌‍​‌​​​‌​​​​‌‌​​​‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​‌‌​​​​‌​‌​​​‌‌‍​‌‌‌‌‌‌‌‌‌‌‌‌​‌​‍​​​​​​​​‌‌‌​​‌​‌‍‌​‌​​‌‌​‍‌​‌‌‌​‌‌‍‌​‌​​‌​‌‍‌‌​​‌‌‌​‍‌‌​​‌‌​‌‍‌‌​​‌‌​​‍‌‌​​‌​‌‌‍‌‌​​‌​‌​‍‌‌​​‌​​‌‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​‌​‌​​​‌‌​​‌‌‌‌‍​‌​‌​​​‌​‌‌‌‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​​‌​‌‌‍‌​​​‌‌‌‌‍‌​​​‌‌​​‍‌‌​​​‌​‌‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍‌​​​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌​‍‌​​‌‌‌‌​‍‌​​‌​​​‌‍‌​​‌‌​​​‍‌​​​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌​‍‌​​‌‌‌‌​‍‌​​‌​​​‌‍‌​​‌‌​​​‍‌‌​‌​​​‌‍‌​​‌​‌‌​‍‌​​‌​​​​‍‌​‌​​​‌‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌​‍‌​‌​​​‌‌‍‌‌​​‌‌‌​‍‌‌​​‌‌​‌‍‌​‌​​​‌‌‍‌‌​​‌‌‌​‍‌‌​​‌​‌​‍‌​‌​​​‌‌‍‌​​‌‌‌​‌‍‌​​‌‌‌‌​‍‌​​​‌‌​​‍‌​​‌​‌‌‌‍‌‌​‌​​‌​‍‌​​​‌‌​​‍‌​​‌​​​​‍‌​​​‌​‌​‍‌​​​‌‌​‌‍‌​​‌‌‌​​‍‌​​‌‌​‌​‍‌‌​‌​​​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​‌​​‌​‍‌​​‌​​‌‌

截屏2021-12-15 下午7.00.43

#!/bin/bash
# func.sh
function echo_color(){
    local msg=$1
    echo -e "\033[1;31m${msg}\033[0m"
}
if [ -n "$func_var" ]; then
    return
fi
func_var=123
echo 456

截屏2021-12-15 下午7.04.32

仅调用函数和变量

#!/bin/bash
# func.sh
function echo_color(){
    local msg=$1
    echo -e "\033[1;31m${msg}\033[0m"
}
if [ -n "$func_var" ]; then
    return
fi
func_var=123
if [ "$BASH_SOURCE" == $0 ]; then
    echo 456
fi

截屏2021-12-15 下午7.07.14

仅有 1 条评论
  1. Asukanana Asukanana     iPhone /    Safari

    教我!

撰写评论