當前位置:首頁 » 編程軟體 » shell調用腳本文件

shell調用腳本文件

發布時間: 2024-06-01 21:44:57

1. shell 中怎麼調用perl腳本

調用帶參數的腳本,需要首先設置,舉例如下:

test.py按行解釋如下:
腳本中有漢字的話,需要聲明文件編碼格式;
導入sys模塊,這個模塊是用來獲取參數列表的;
sys.argv是一個列表,第一個是文件名,之後依次是參數列表;
列印輸出,這一步不需要多講;
保存到c:\users\YYC\Desktop\test.py;
調用操作步驟:
打開命令行;
輸入python 文件名 第一個參數 第二個參數.....(參數之間用空格區分);
一定要注意參數個數,要以文件名開始。

2. 如何在shell腳本里調用另一個shell腳本

子shell變數傳遞給父shell,中間可以保存個臨時文件讓父shell去讀。下邊是一個子shell,傳遞給父shell的一個例子,僅做參考#!/bin/bash(subvar="helloshell"echo"$subvar">temp.txt)readpvar

3. Shell腳本的幾種執行方式之區別

1、bash 腳本文件或者 sh 腳本文件,通過這種方式可以運行沒有執行許可權或者在腳本裡面沒有指定解釋器的腳本;

2、./腳本文件或者腳本文件全路徑,通過這種方式執行腳本文件需要腳本文件有執行許可權,並且在腳本文件裡面指定了正確的解釋器;
3、source 腳本文件或者. 腳本文件(.和腳本文件之間有空格),這種運行方式是在當前shell下運行,運行後腳本中定義的變數不會釋放,這也是此種方式運行腳本與前三種的最大區別。例如在腳本中定義了name=GG,那麼在腳本運行完成之後,echo $name仍會顯示GG

4. shell腳本怎麼調用其他shell腳本

在Shell中要如何調用別的shell腳本,或別的腳本中的變數,函數呢?

方法一: . ./subscript.sh
方法二: source ./subscript.sh
注意:
1.兩個點之間,有空格,千萬注意.
2.兩個腳本不在同一目錄,要用絕對路徑
3.為簡單起見,通常用第一種方法
例如:

復制代碼代碼如下:

main.sh #主腳本
subscripts.sh #子腳本,或者說被調腳本
[code]
[code]
###subscripts.sh 腳本內容如下:###

#!/bin/bash
string="Hello,World! \n"

復制代碼代碼如下:

###main.sh 腳本內容如下###

#!/bin/bash
. ./subscripts.sh
echo -e ${string}
exit 0

輸出結果:

復制代碼代碼如下:

# chmod +x ./main.sh
# ./main.sh
Hello,World!
#

5. shell腳本調用外部腳本的問題

估計是因為腳本1中使用了cd命令改變了當前路徑,腳本2中繼承了腳本1中的當前路徑;而一旦腳本1結束回到主shell,這個當前路徑也就不復存在。
如果在腳本2基於這個當前路徑啟動jar包前,腳本1結束了,那麼當前路徑肯定回到了主shell的設置去了,jar包就啟動不了了。
任何外部調用的shell命令執行都會產生一個進程,都會有一個pid,即使最終執行是返回錯誤。

所以,兩點建議:
1)腳本1調用2的命令行後加上 &,置入後台運行,這樣就不會因為腳本1的結束而影響腳本2的運行。
2)腳本中盡量不要用cd命令跳轉目錄,盡量使用絕對路徑。

6. 如何建立和執行shell腳本文件--基於linux

方法很多:
方法一:切換到shell腳本所在的目錄(此時,稱為工作目錄)執行shell腳本。

cd/data/shell
./hello.sh

./的意思是說在當前的工作目錄下執行hello.sh。如果不加上./,bash可能會響應找到不到hello.sh的錯誤信息。因為目前的工作目錄
(/data/shell)可能不在執行程序默認的搜索路徑之列,也就是說,不在環境變數PASH的內容之中。查看PATH的內容可用 echo
$PASH 命令。現在的/data/shell就不在環境變數PASH中的,所以必須加上./才可執行。
方法二:以絕對路徑的方式去執行bash shell腳本。
/data/shell/hello.sh

方法三:直接使用bash 或sh 來執行bash shell腳本。
cd/data/shell
bashhello.sh

方法四:在當前的shell環境中執行bash shell腳本。
cd/data/shell
.hello.sh

7. 如何在shell中執行簡單的javascript腳本

javascript腳本的運行需要一個JS的執行環境(比如瀏覽器就是一個執行環境),不同的執行環境下有個別的差異,差異主要是和環境以及平台相關的.

如果是在windows的cmd環境下,可以使用系統自帶的wscript.exe來運行簡單的腳本. 例如:

R:>catc.js
varsum=0;
for(vari=0;i<10;i++){
sum+=i;
}
WScript.Echo(sum);
R:>wscriptc.js

在linux或者windows下均可以通過node.js提供的運行環境來執行js腳本,例如:

R:>catd.js
varsum=0;
for(vari=0;i<10;i++){
sum+=i;
}
console.log(sum);
R:>noded.js
45

node提供了完成的平台開發環境,可以嘗試下. 需自行安裝

8. 如何用SHELL命令運行一個文件

1、Shell是命令解釋器,所執行的文件有兩種,一種是基於ELF文件格式的可執行文件,一種是基於Shell腳本格式的腳本文件。

2、不管是可執行文件還是shell腳本,如果存在於PATH變數所指明的路徑中,shell會自動尋找相應的可執行文件,用戶只需要輸入可執行文件名或者腳本名即可執行。

3、如果可執行文件或者Shell腳本的存放位置不在PATH變數所指明的路徑中,則需要通過".」來執行,比如下面的C語言寫的hello world程序,需要輸入./t才可以被shell運行。

9. shell腳本中調用腳本

裡面有個錯誤,time 是個命令,不能用來做變數,這是致命的!
----------------
我給個測試腳本你試一下:
.............
#!/bin/sh
flag=0
plan_hour=19
plan_minutes=47
plan_time=`echo -n "$plan_hour";echo -n "$plan_minutes"`
clear

while true
do
hour=`date +"%H"`
minutes=`date +"%M"`
seconds=`date +"%S"`
time1=`echo -n "$hour";echo -n "$minutes"`
clear
echo -n "現在的時間為: "
echo -n $hour
echo -n :
echo -n $minutes
echo -n :
echo -n $seconds

if [ "$time1" -eq "$plan_time" ]; then
flag=1
clear
echo -n "3秒後關閉 1.sh"
sleep 3
ps -ef|grep "sh 1.sh"|grep -v grep|awk '{print $2}'|xargs kill
clear
echo "1.sh 已經結束;2.sh 1分鍾後喚醒 1.sh"
sleep 59
fi

sleep 1
if [ $flag -eq 1 ]; then
sh 1.sh
exit 0
fi

done
===============
腳本一開始預定關閉 1.sh 的時間。
在未到定時時,就顯式時間。
定時時間到,給出殺死 1.sh 的提示,3秒後殺死,然後再 1 分鍾後再喚醒 1.sh 進程。喚醒 1.sh 後,2.sh 也就跟著退出了。
------------------------------------------------------
2.sh 時間設對了是可以殺死 1.sh 的。
如果按照你的要求,我覺得寫個程序應該更好處理些,參考代碼如下:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>

int main()
{
pid_t pid;
while(1) {
pid = fork();

switch(pid) {
case -1:
perror("fork failed");
exit(1);
case 0:
while(1) {
printf("I'm 1.sh ,I'm running........\n");
sleep(1);
}

default:
sleep(5);
kill(pid, SIGKILL);
printf("child over\n");
sleep(40);
break;
}
}
return 0;
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
上面程序,先 fork() 出一個子進程,相當於 1.sh,然後你在子進程里做你要做的事情。父進程在 5s 後(相當於每天預設的一個時間,每天的時間設定可用相關的函數進行設置檢測)殺死子進程,然後睡眠 40s,醒來後,又循環 fork() 同樣的子進程做同樣的事情。

熱點內容
添銳壓縮機 發布:2024-11-27 00:46:45 瀏覽:618
別克s60和君威配置哪個好 發布:2024-11-27 00:36:03 瀏覽:722
資料庫的文件名稱 發布:2024-11-27 00:30:04 瀏覽:336
javaweb與android交互 發布:2024-11-27 00:28:26 瀏覽:918
華為手機方舟編譯器emui91 發布:2024-11-27 00:10:46 瀏覽:948
高考時老媽解壓 發布:2024-11-27 00:09:34 瀏覽:358
全振動演算法 發布:2024-11-27 00:00:24 瀏覽:843
編譯程序用銳龍好還是酷睿好 發布:2024-11-26 23:47:09 瀏覽:897
蘋果緩存清理後會加速嗎 發布:2024-11-26 23:28:11 瀏覽:139
我的世界伺服器修改開放埠 發布:2024-11-26 23:22:51 瀏覽:52