欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux之Shell脚本编程—— sh 与 source (. )区别 (3)

程序员文章站 2024-02-19 18:11:52
...

文章目录

区别定义

Linux之Shell脚本编程—— sh 与 source (. )区别 (3)

  • sh执行脚本 生成子shell 而这个变量在子shell中没有定义
  • source (include) 把这个脚本在当前shell环境中运行

sh与(.)的应用场景:
sh 日常执行脚本
source 一般用来 实现include 功能 或配置环境变量 别名后生效
. /etc/init.d/functions
Linux之Shell脚本编程—— sh 与 source (. )区别 (3)

使用方法

[[email protected] scripts]# cat test.sh 
#!/bin/bash
#test_by_ncs_2019-11-18
ping -c1 127.0.0.1 &>/dev/null && echo "127.0.0.1 is up" || echo "127.0.0.1 is down"

如果要去测试别得IP就需要改很多地方
可移植性太低
如果使用source的方法会解决这个问题(其中一种解决方法)

[[email protected] scripts]# cat ip.sh 
#!/bin/bash
ip1=127.0.0.1

[[email protected] scripts]# cat test2.sh 
#!/bin/bash
#ping_by_ncs_2019-11-18
. ip.sh
ping -c1 $ip1 &>/dev/null && echo "$ip1 is up" || echo "$ip1 is down"

脚本中可以去调用另一个脚本得公共得变量 在公共得脚本中坐成公共得变量
先加载存放变量脚本得变量 内容较多推荐使用这种方法