當前位置:首頁 » 編程軟體 » shell腳本啟動程序

shell腳本啟動程序

發布時間: 2022-05-15 20:15:31

❶ 如何運行linux shell程序

如何運行shell程序,如何在shell程序以及後續腳本中使用同一個變數,這些在工作中經常用到, 我找到如下的文章,再加深復習一下。
1 source命令用法:
source FileName
作用:在當前bash環境下讀取並執行FileName中的命令。該filename文件可以無"執行許可權"
註:該命令通常用命令「.」來替代。
如:source .bash_profile
. .bash_profile兩者等效。
source(或點)命令通常用於重新執行剛修改的初始化文檔。
source命令(從 C Shell 而來)是bash shell的內置命令。
點命令,就是個點符號,(從Bourne Shell而來)。
source的程序主體是bash,腳本中的$0變數的值是bash,而且由於作用於當前bash環境,腳本中set的變數將直接起效

2 sh, bash的命令用法:
sh/bash FileName

作用:打開一個子shell來讀取並執行FileName中命令。該filename文件可以無"執行許可權"

註:運行一個shell腳本時會啟動另一個命令解釋器.
每個shell腳本有效地運行在父shell(parent shell)的一個子進程里.
這個父shell是指在一個控制終端或在一個xterm窗口中給你命令指示符的進程.
shell腳本也可以啟動他自已的子進程.
這些子shell(即子進程)使腳本並行地,有效率地地同時運行腳本內的多個子任務.
在ubuntu中sh只是bash的一個鏈接。
由於是在子shell中執行,腳本設置的變數不會影響當前shell。

3 ./的命令用法:
./FileName
作用:打開一個子shell來讀取並執行FileName中命令。該filename文件需要"執行許可權"
註:運行一個shell腳本時會啟動另一個命令解釋器.
每個shell腳本有效地運行在父shell(parent shell)的一個子進程里.
這個父shell是指在一個控制終端或在一個xterm窗口中給你命令指示符的進程.
shell腳本也可以啟動他自已的子進程.
這些子shell(即子進程)使腳本並行地,有效率地地同時運行腳本內的多個子任務.
由於是在子shell中執行,腳本設置的變數不會影響當前shell。

4 export:
一個變數創建時,它不會自動地為在它之後創建的shell進程所知。而命令export可以向後面的shell傳遞變數的值。當一個shell腳本調用並執行時,它不會自動得到原為腳本(調用者)里定義的變數的訪問權,除非這些變數已經被顯式地設置為可用。export命令可以用於傳遞一個或多個變數的值到任何後繼腳本
5. 舉例
比如您在一個腳本里export $KKK=111 ,假如您用./a.sh執行該腳本,執行完畢後,您運行 echo $KKK ,發現沒有值,假如您用source來執行 ,然後再echo ,就會發現KKK=111。因為調用./a.sh來執行shell是在一個子shell里運行的,所以執行後,結構並沒有反應到父shell里,但是 source不同他就是在本shell中執行的,所以能夠看到結果.
小測試
1 建立test.sh
#!/bin/bash
export s=/home/jboss/
2 執行命令: source test.sh
echo $s
結果輸出: /home/jboss/
3 新開個shell
執行命令: ./test.sh
echo $s
結果: 沒有輸出s值

結論:
1、執行腳本時是在一個子shell環境運行的,腳本執行完後該子shell自動退出。
2、一個shell中的系統環境變數才會被復制到子shell中(用export定義的變數);
3、一個shell中的系統環境變數只對該shell或者它的子shell有效,該shell結束時變數消失(並不能返回到父shell中)。3、不用 export定義的變數只對該shell有效,對子shell也是無效的。

直接執行一個腳本文件是在一個子shell中運行的,而source則是在當前shell環境中運行的。
source可以讓腳本影響它們的父shell環境,這和export去影響子shell環境相反.

❷ Linux下如何執行Shell腳本

linux下可以有兩種方式執行shell腳本:
1、用shell程序執行腳本:根據shell腳本的類型,選擇shell程序,常用的有sh,bash,tcsh等(一般來說第一行#!/bin/bash裡面指明了shell類型的,比如#!/bin/bash指明是bash,#!/bin/sh則是sh);然後輸入命令(其中bash為shell的名稱,myshell.sh則為要執行的代碼):
bash
myshell.sh
2、直接執行腳本:
不過首先的加上可執行許可權(也許要root許可權,4情況而定),執行:

❸ Linux shell腳本如何自動運行程序並輸入命令

我建議你使用shell的spawn命令,很好用的,能實現你說的功能!Linux shell腳本如何自動運行程序並輸入命令

❹ 用shell腳本寫一個服務的啟動程序

一般在/etc/init.d目錄下都是各種服務的啟動腳本。你可以參考著自己的程序寫。

❺ linux shell腳本如何啟動一個java進程

在shell裡面直接調用即可。
    1,編譯一個java文件為a.class。
    2,編寫shell腳本b
.sh

#!/bin/bash
java a.class    3,放在同一目錄下運行shell即可。如果要後台運行,bash
b.sh&

❻ shell定時執行腳本啟動jar程序的問題

在腳本里聲明java環境變數,加上下列語句在#! /bin/sh底下,注意.後面有空格
. ~/.bash_profile
. /etc/profile

❼ shell腳本主要有哪些

第一個shell腳本程序:

#!/bin/bash
# 上面中的 #! 是一種約定標記, 它可以告訴系統這個腳本需要什麼樣的解釋器來執行;echo "Hello, world!"

變數:

定義變數:

country="China"Number=100

注意: 1,變數名和等號之間不能有空格;

2,首個字元必須為字母(a-z,A-Z)。

3, 中間不能有空格,可以使用下劃線(_)。

4, 不能使用標點符號。

5, 不能使用bash里的關鍵字(可用help命令查看保留關鍵字)。

使用變數:

只需要在一個定義過的變數前面加上美元符號$就可以了, 另外,對於變數的{} 是可以選擇的, 它的目的為幫助解釋器識別變數的邊界.

country="China"echo $countryecho ${country}echo "I love my ${country}abcd!"

#這個需要有{}的;

重定義變數:直接把變數重新像開始定義的那樣子賦值就可以了:

country="China"country="ribenguizi"

只讀變數: 用 readonly 命令 可以把變數字義為只讀變數。

readonly country="China"#或
country="China"readonly country

刪除變數: 使用unset命令可以刪除變數,但是不能刪除只讀的變數。用法:

unset variable_name

變數類型

運行shell時,會同時存在三種變數:

1) 局部變數

局部變數在腳本或命令中定義,僅在當前shell實例中有效,其他shell啟動的程序不能訪問局部變數。

2) 環境變數

所有的程序,包括shell啟動的程序,都能訪問環境變數,有些程序需要環境變數來保證其正常運行。必要的時候shell腳本也可以定義環境變數。

3) shell變數

shell變數是由shell程序設置的特殊變數。shell變數中有一部分是環境變數,有一部分是局部變數,這些變數保證了shell的正常運行

特殊變數:

其中, 1. 取值後面必須為關鍵字 in,每一模式必須以右括弧結束。取值可以為變數或常數。匹配發現取值符合某一模式後,其間所有命令開始執行直至 ;;。;; 與其他語言中的 break 類似,意思是跳到整個 case 語句的最後。2. 如果無一匹配模式,使用星號 * 捕獲該值,再執行後面的命令。

❽ shell腳本啟動程序,rang

一、Android應用啟動服務執行腳本1如何寫服務和腳本在android源碼根目錄下有/device/tegatech/tegav2/init.rc文件相信大家對這個文件都不陌生(如果不明白就仔細研讀下android啟動流程)。如果在該腳本文件中添加諸如以下服務:serviceusblp_test/data/setip/init.usblpmod.shoneshotdisabled註解:每個設備下都會有自己對應的init.rc,init.設備名.rc腳本文件。oneshotdisabled向我們說明了在系統啟動的時候這個服務是不會自動啟動的。並且該服務的目的是執行/data/setip/init.usblpmod.sh腳本。腳本的內容你可以隨便寫,只要符合shell語法就可以了,比如腳本可以是簡單的設置eth0:#!/system/bin/sh//腳本的開頭必須這樣寫。Ifconfigeth0172.16.100.206netmask255.255.0.0up//設置ip的命令2、如何在應用中啟動服務1)首先了解下在服務啟動的流程1.在你的應用中讓init.rc中添加的服務啟動起來。首先了解下在服務啟動的流程:在設備目錄下的init.c(切記並不是system/core/init/init.rc)Main函數的for(;;)循環中有一個handle_property_set_fd(),函數:[cpp]viewplainfor(i=0;i

❾ 請教大牛們,shell腳本里實現啟動一個perl腳本程序,執行一段時間後,然後重新啟動這個perl腳本程序

最好是加到計劃任務crontab里
或者
while true
do
perl A.pl

sleep 7200

done
執行shell就sh a.sh &放進後台,到時候要停就找到這個sh的pid,kill掉

❿ 關於linux 用shell啟動軟體

登錄流程會載入很多文件,根據不同的linux發布版本你想找的東西也不一定在哪。你只是想能比較方便的用你的python腳本吧。
可以在終端echo $PATH,就會顯示linux自己搜索的目錄,直接輸入命令就可以自動搜索這些目錄下的東西。你是想用腳本打開軟體?建議在腳本裡面使用絕對路徑打開想要的軟體,如果是在你的工作目錄下,使用相對路徑,但是最好不要改環境變數。
如果你是想在linux下直接使用腳本,就把python的路徑添加到環境變數中,比如你的python在/usr/python目錄下,那麼就用:
PATH=$PATH:/usr/python 注意不能有空格," : "一定要有,:的後面接你的python目錄,然後在python的腳本第一行寫 #!/usr/python,聲明使用的腳本位置。這樣如果你的py腳本如果執行許可權,就是有x位,那麼應該是可以直接執行的。或者可以python abc.py

如果每次開機都想這樣,可以把PATH=$PATH:/usr/python命令寫到你的家目錄下面的.bashrc里。如果是改登錄文件是/etc/profile(根據不同的發布版本可能不同,並且需要root許可權),所以就添到~/.bashrc里就好了

熱點內容
matlab新建文件夾 發布:2024-05-02 05:14:19 瀏覽:717
看加密相冊 發布:2024-05-02 04:45:53 瀏覽:663
資源存儲在哪 發布:2024-05-02 04:23:28 瀏覽:169
如何猜對方qq密碼後幾位 發布:2024-05-02 03:46:59 瀏覽:403
php最後出現字元串 發布:2024-05-02 03:46:31 瀏覽:492
android源碼debug 發布:2024-05-02 03:41:13 瀏覽:437
python離線安裝包 發布:2024-05-02 03:10:42 瀏覽:920
君越配置有哪些 發布:2024-05-02 03:10:41 瀏覽:453
哪裡有java培訓 發布:2024-05-02 02:35:56 瀏覽:503
iis其他電腦訪問 發布:2024-05-02 02:22:14 瀏覽:183