码迷,mamicode.com
首页 > 系统相关 > 详细

執行shell script與subshell

时间:2017-01-17 07:47:41      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:library   重要   var   pts   font   medium   sub   script   bsp   

兩種方法

  • 喚起新shell再執行shell scripts
  • 在目前shell執行shell scripts

喚起另一個shell來執行的scripts在scripts檔頭最前面前要加

      #! /bin/sh

第一種方法是在shell script 文字檔前指出shell scripts解讀的程式在那(也就是 我們的shell)然後把文字檔的執行權限打開,照一般執行可執行檔方式執行或者叫 一個shell來解釋文字檔test.sh。

      $ test.sh
      $ /bin/sh test.sh
      $ ( . test.sh; )
      $ exec test.sh

第二種方法是用命令‘‘.‘‘或者source執行。

      $ . test.sh
      $ source test.sh
      $ { test.sh; }
      $ eval ‘. test.sh‘

差別在於一些設定只有在這個shell下的才算數,而喚起另一個shell就是另一個 不相干的世界, 也就是用第一種方法執行的script中變數的設定,不會影響到原來的shell變數。 這個相當重要。ksh沒有source這個命令,所以最好不要用source。 中括號( )表示用另一個subshell大括號,{ }表示用目前shell。例如

      $ ( VAR=‘testvar‘; )
      $ echo $VAR

      $ { VAR=‘testvar‘; }
      $ echo $VAR
      testvar

只有{ }內的VAR中的值被設定。其中用 . 的方法要很小心, 不要在script裡面用

      $ . test.sh arg1 arg2

因為arg1 arg2會繼承呼叫這個script的arg1 arg2來,用 . 的方式最好是要執行 的script只是一團script library不帶參數。 另外如果 . test.sh執行,test.sh離開時,呼叫. test.sh的shell也跟著離開。

 

執行shell script與subshell

标签:library   重要   var   pts   font   medium   sub   script   bsp   

原文地址:http://www.cnblogs.com/wangnotes/p/6291541.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!