Gox指令碼的各種執行方式 GX2

2021-10-08 03:27:35 字數 3285 閱讀 6027

那麼,我們就來看看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...