大家帮忙看看这个脚本哪里写的不对?

  • 我好像是小号
    如题目。。。。linux系统a脚本是app程序运行需要的环境变量跟参数。
    b脚本是程序自启脚本。

    我在b脚本里面运行a脚本,然后启动程序,程序报错,说明a脚本并没有起效果。然后我把a脚本里面的内容放到b脚本启动程序的前面,程序就启动正常。
    我想环境变量跟参数一个脚本,启动一个脚本,这样清清楚楚哎,为啥就行不通哎?运行脚本只有sh跟source吧?两个方式都不行哎

  • k
    kaidokido
    我艹 新技能Get。。
  • 我好像是小号
    大佬们救命啊 iOS fly ~
  • b
    b0207191
    执行路径?
    Chmod 777?
  • j
    jn13lh
    source应该没问题才对。
  • x
    xzap
    环境变量前面加 export 了么?
  • 我好像是小号
    回复6#xzap
    加了 iOS fly ~
  • j
    joyfun
    多加几行echo一下 看看
  • 我好像是小号
    回复5#jn13lh
    也不行,好像a脚本没有执行一样 iOS fly ~
  • 我好像是小号
    回复8#joyfun
    加哪个里面?哪个位置? iOS fly ~
  • j
    jn13lh
    回复9#我好像是小号

    sh可能不行。相当于另开一个进程执行了。
    source或者. 按说没问题。
    环境变量那个脚本设置完之后echo下看看。然后这个启动脚本source环境变量之后再echo下看看。
    要是第一个echo正确。第二个不正确。你就看看a脚本设置完环境变量之后又干啥了。。。
    --------

    另外还有种可能就是a脚本确实没有被执行。权限呀。文件路径啊。之类的原因。。这个时候a里的echo不会有输出。你可以在a的末尾加个echo env ok之类的来验证这一点。如果执行b之后没输出env ok。你去找a没执行的原因就好了。
  • j
    joyfun
    回复10#我好像是小号

    a脚本末尾 echo $ 变量
    然后 在cd前面也echo一下 对比下
  • y
    yaohoo
    在b里面运行a.sh 后,所有状态相当于你开了一个虚拟机,开机,运行程序,然后关机,a.sh运行后不会改变当前b所在terminal已经启动状态下的环境变量

    如果想要起作用,需要重新激活当前状态。
  • y
    yaohoo
    1. #!/bin/sh

    2. setterm -blank 0
    3. sh /opt/a.sh

    4. source ~/.bashrc # or source ~/.bash_profile
    5. cd /opt/app
    复制代码
  • 我好像是小号
    回复13#yaohoo
    应该要怎么样弄?
    我这个是没有登录,直接自动启动程序的 iOS fly ~
  • j
    jn13lh
    回复13#yaohoo

    source的话相当于把那段脚本拿到当前进程执行。为什么不行。?
  • y
    yaohoo
    source命令的作用就是用来执行一个脚本,那么:
    source a.sh 同直接执行 ./a.sh 有什么不同呢,比如你在一个脚本里export $KKK=111 ,如果你用./a.sh执行该脚本,执行完毕后,你运行 echo $KKK ,发现没有值,如果你用source来执行 ,然后再echo ,就会发现KKK=111。因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结构并没有反应到父shell里,但是source不同它就是在本shell中执行的,所以可以看到结果

    https://blog.csdn.net/xyqzki/article/details/41832875
  • j
    jn13lh
    回复18#我好像是小号

    你先把sh改成source。然后再继续排查原因。咋这么喜欢sh呢。。。
  • 我好像是小号
    回复19#jn13lh
    改了,还是一样iOS fly ~
  • n
    nahcoiii
    a.sh有没有x权限?
  • 我好像是小号
    回复21#nahcoiii
    b脚本是root权限执行的,然后b脚本里面执行a脚本 iOS fly ~
  • n
    nahcoiii
    回复22#我好像是小号
    ls -rtl a.sh看一下。
  • 我好像是小号
    回复23#nahcoiii
    显示这样子:

    iOS_fly_37.jpeg
    iOS fly ~
  • 退
    退休工人
    回复24#我好像是小号

    靠,号弟,到今天都没有解决?!
  • 我好像是小号
    回复25#退休工人
    亲,可不是嘛iOS fly ~