那麼,我們就來看看gox語言的各種花式執行方式吧。
- **正常執行**
在終端視窗(例如windows下為命令提示符,即cmd)中執行類似下面的命令,即可執行名為script1.gox的gox語言指令碼檔案。
> gox script1.gox
注意:gox語言的**必須以utf-8格式編碼。
- **拖拽執行**
- **雙擊直接執行**
- **直接執行gui圖形介面程式(不顯示終端視窗)**
如果指令碼不需要命令列視窗,可以直接用goxg代替gox來執行指令碼,這樣不會出現終端視窗(windows上黑色的cmd視窗),還可以設定.goxg字尾的檔案預設用goxg程式開啟,這樣將只有gui介面的指令碼改為.goxg字尾後,就可以直接雙擊執行該檔案了。
- **自動執行預設指令碼(可用於分發應用指令碼)**
gox主程式啟動時,會檢查其所在的資料夾/目錄下是否有名為auto.gox的檔案,如果有則會自動執行該指令碼。這是為了讓開發者發布指令碼方便,只需將gox主程式和名為auto.gox的指令碼檔案打包在一起分發就可以了,這樣別人直接雙擊gox執行檔案就會自動執行該指令碼。如果不希望發布的指令碼改名為auto.gox,可以在auto.gox檔案中用run、runcode或runscript函式執行該指令碼,這樣兩個指令碼和乙個gox主程式一起分發就可以了。
另外,gox還支援自動執行的批處理指令碼,請參看後面批處理的說明。
- **啟**形化**編輯器,並可以在編輯器中修改和執行****
> gox -edit script1.gox
!(- **直接啟**形**編輯器,編輯新的gox指令碼並可以執行**
> gox -edit
- **在repl環境(直接執行gox程式不帶引數將進入互動式程式設計環境repl)中,直接執行run()函式,可以彈出檔案選擇框選擇執行某個指令碼檔案**
!(- **在gox**中執行另一段指令碼**,使用runscript函式**
!(runscript函式第二個引數是執行指令碼的模式mode,具體的進一步使用方法,請參考gox語言的[文件](
- **在gox**中,直接使用run函式,直接執行乙個指定的gox指令碼檔案。**
!(這兩種方法可以也用於載入自己編寫的gox語言庫檔案。
- **直接執行網路上的某個指令碼**
> gox -remote
- **根據配置檔案執行某個指令碼**
> gox -cloud script1.gox
根據gox配置目錄下(配置目錄的查詢原則是:先查詢c:\gox或/gox下,無法訪問則改為gox執行程式的目錄)的cloud.cfg檔案中的內容作為字首來執行遠端指令碼
> gox -local script1.gox
根據gox配置目錄下的localscriptpath.cfg檔案中的內容作為字首來執行本地目錄指令碼
> gox -ssh=file script1.gox
根據gox配置目錄下的ssh.cfg檔案中的內容作為字首來執行遠端伺服器上的某目錄下的指令碼,其中的內容可以是類似host:port:username:password:remotedir/ 這樣
- **直接執行**
對於開發人員,可以直接使用下述方式執行**:
> gox -example basic.gox
可以直接執行gitee上gox庫中的例子**。
> gox -gopath basic.gox
可以執行本地gopath下gox庫中的例子**。
上述兩種情況時,字尾.gox可以省略。
- **魔法**/數字(mn)**
另一種更方便的方式是魔法**(magic code/number,簡稱mn),即根據乙個數字來執行**。例如,執行下面的**(確保可以訪問網路):
> gox 18
將執行一段例子**,結果如下:
```c:\users\administrator>gox 18
calculator by topxeq v0.9a
please enter the expression: 7*98-(1-0.71)
result: 685.71
c:\users\administrator>
```我們可以用-view引數來檢視魔法數字為18的**:
```c:\users\administrator>gox 18 -view
pln("calculator by topxeq v0.9a")
parat = trim(getparameter(os.args, 2, ""))
if parat != "" else
result = eval(expression)
println("result:", result)
pass()
c:\users\administrator>
```當然,也可以用重定向將**儲存下來修改:
```c:\users\administrator>gox 18 -view > test.gox
c:\users\administrator>
```這樣,mn為18的**就被儲存下來到test.gox檔案中,可以據此再進行修改。
- **批處理**
gox也支援批處理,即一行一行處理多個gox**檔案,一般將這種檔案命名為字尾為「.gxb」的檔案中,每行寫一條命令列即可,即一般執行gox**的命令列把第乙個gox主程式這個去掉即可。即,如果原來命令行為:
```gox -verbose test.gox
```那麼,寫入gox批處理檔案中應為:
```-verbose test.gox
```下面乙個批處理檔案例子,檔名為auto.gxb,其中內容是:
```// gxb
basic.gox
18basic.gox -verbose
注意,其中可以寫注釋行,也是以「//」開頭,注釋行將被忽略。這樣,basic.gox檔案將被執行兩次,中間還將執行一次魔法數字為18的**,第二次執行basic.gox時,將帶上開關引數-verbose。在批處理中的gox**最好用全域性變數argsg來處理命令列引數而不是os.args,argsg將儲存正在執行的批處理的這一行。
gox中,將有三種形式讓gox將**作為批處理檔案來處理:
- 字尾為.gxb的檔案,將自動被作為批處理檔案處理
- 檔案中第一行如果以「// gxb」開頭,該檔案將被按批處理檔案處理,無**件名字尾是什麼
- gox執行時,命令列中如果帶有-batch引數,也將忽略檔名字尾按批處理進行
與auto.gox檔案類似,如果執行gox主程式時沒有帶引數,當前目錄下如果存在auto.gxb檔案時,將自動按批處理檔案執行auto.gxb。
shell 指令碼的執行方式
執行shell指令碼的方式基本上有三種 1 輸入定向到shell指令碼 這種方式是用輸入重定向方式讓shell從給定檔案中讀入命令列並進行相應處理。其一般形式是 bash 指令碼名 例如 bash 2 以指令碼名作為引數 其一般形式是 bash 指令碼名 引數 例如 bash ex2 usr men...
執行Shell指令碼的方式
執行shell指令碼的方式基本上有三種 1 輸入定向到shell指令碼 這種方式是用輸入重定向方式讓shell從給定檔案中讀入命令列並進行相應處理。其一般形式是 bash 指令碼名 例如 bash shell從檔案ex1中讀取命令列,並執行它們。當shell到達檔案末尾時就終止執行,並把控制返回到s...
Shell指令碼的執行方式
註明 wd代表 指令碼儲存的目錄 1.fork 語法 wd shell.sh fork是最普通的,就是直接在指令碼裡面用 wd shell.sh來呼叫shell.sh這個指令碼.執行的時候開乙個子shell執行呼叫的指令碼,子shell執行的時候,父shell還在。子shell執行完畢後返回父she...