跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • shell 脚本中的变量,如何跨脚本使用?
未分類
22 3 月 2020

shell 脚本中的变量,如何跨脚本使用?

shell 脚本中的变量,如何跨脚本使用?

資深大佬 : css3 26

首先考虑到使用source, 但用source也是实际上也是执行了一遍脚本,如何通过其他方式调用变量呢?

# a.sh var1=3 
# b.sh 这个脚本中想使用 var1 变量 bash a.sh echo $var1 

大佬有話說 (18)

  • 資深大佬 : ALLLi

    export

  • 資深大佬 : CallMeReznov

    可以设置成环境变量

  • 資深大佬 : MeteorCat

    写本地文件,另外脚本读

  • 主 資深大佬 : css3

    source 会执行一遍 a.sh ,而我自己本身也需要通过 bash 执行一遍 a.sh ,如果只看这里,就觉得用 source 替代 bash 不就行了。可问题是我这个 a.sh 有命令行参数,source 不支持给 a.sh 传参数,所以困惑住了

  • 資深大佬 : oeagut

    记得之前看教程,一个很傻瓜的办法就是 echo 出来,变通一下

  • 資深大佬 : fanhed

    echo 出来, 需要考虑转义
    然后其他脚本捕获后直接 eval

  • 資深大佬 : aloxaf

    @css3 谁说 source 不支持传参的……

  • 資深大佬 : impl

    # b.sh
    eval `cat a.sh`
    echo $var1

  • 資深大佬 : yangbonis

    变量都是运行时的,你想访问就得解决同步的问题。source 也是一样的,规定了顺序而已。

  • 資深大佬 : tdtdttdd

    @impl eval 好像是正解

  • 資深大佬 : wd

    你去搜下 subshell

  • 資深大佬 : secsilm

    需求简单的话就写本地文件,这样方便修改和管理

  • 資深大佬 : aaa5838769

    最好写到本地文件中

  • 資深大佬 : tankren

    第一个 shell 结尾把要传递的变量 export 到环境变量然后执行第二个 shell

  • 資深大佬 : FH0

    var1=$var1 bash b.sh

  • 資深大佬 : ps1aniuge

    问:shell 脚本中的变量,如何跨脚本使用?
    答:用 win,linux 通用的 powershell,并使用$global:abc=1

    问:首先考虑到使用 source, 但用 source 也是实际上也是执行了一遍脚本,如何通过其他方式调用变量呢?
    答:
    本质上来讲,shell 脚本这块天生残废,没有按照跨脚本设计,也就没有跨脚本的功能。
    本质上来讲,无法实现跨脚本使用变量。
    $global:abc=1 在 powershell 中叫做全局变量。
    本质上来讲 shell,和 py 里没有全局变量。看清楚,py (本质!)没有全局变量。

    ps 第 14 课:变量的作用域
    我在我写的课程里,有详细讲。
    powershell 脚尊神殿。群=183173532 。入群索要教程。

  • 資深大佬 : sunziren

    嗯,学到了学到了。

  • 主 資深大佬 : css3

    @sunziren 卧槽,你这头像

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具