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

sh腳本調用sh

發布時間: 2022-06-29 16:55:15

⑴ 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() 同樣的子進程做同樣的事情。

⑵ sh腳本如何自動執行java程序,並且該腳本如何被定期調用

各位好我有一個問題,是這樣: 環境:有一套管理系統(包括聯機和批量),該管理系統白天運行聯機系統,晚上運行批量系統。 目的:聯機系統運行到晚上,會停掉,這時候通過在unix下的sh腳本調用並且啟動批量系統。 sh腳本可以調用java程序,通過java程序就可以啟動了批量系統。 andilyliao 寫道最簡單的方法 你可以用java寫一個job 然後每天晚上執行sh mginobili 寫道可以在腳本中 實現一個定時功能啊 比如每隔半小時 檢查一次當前的時間 如果到了晚上 就停止聯機系統,運行批量系統 當然前提是 這個sh腳本要一直保持運行狀態 並且其錯誤處理機制要完善問題補充:哦。你的意思是不是這樣啊, 這個sh腳本作為一個定時器,定時調用啟動聯機系統或者批量系統的程序。 通過while(1)這樣一個循環,一直運行不中斷,然後sleep一定時間,就調用聯機的啟動程序,再過一定時間,關閉聯機啟動批量系統。

⑶ 蘋果mac系統下如何編寫.sh腳本調用安裝的某個程序打開指定文件

你先找到應用程序里的一個macos文件夾,把裡面的可執行文件路徑弄下來 後面加上jsf文件的路徑

⑷ 在執行a.sh這個shell腳本時會調用shell腳本b.sh,怎麼通過a.sh給b.sh中環境變數重新賦值

使用 . 可以把另一個腳本讀進來,,然後就可以引用其變數了

. /path/b.sh

b中的變數直接引用

⑸ shell腳本里的函數怎麼調用

shell中的函數,要在定義這個函數的腳本中進行調用!

#!/bin/sh
echo_line(){
echodate
echo"Wellcometoshellfunc!"
}
echo_hello(){
echo"HelloWorld!"
}

##在這里調用,將全部代碼寫入test.sh就可以了
echo"callecho_hello"
echo_hello
echo"callecho_line"
echo_line

在命令行下執行:

$test.sh

linux下如何編寫腳本文件sh調用c++程序

首先將c++程序編譯成可執行文件,例如使用g++編譯
然後在sh腳本中直接使用上一步中產生的可執行文件即可(注意使用時該可執行文件在PATH包含的路徑下面)
平時使用的shell命令很多都是用C語言等寫的,然後編譯成了可執行的文件

⑺ shell腳本怎麼隨機調用其他腳本

1. 計算出當前目錄下以.sh結尾的腳本數目(假設頭腳本不在這個文件夾里):num=`ls *.sh|wc -l`
2. 獲取當前秒數:sec=`date +%s`
3. 基於腳本數目計算隨機數(范圍1~$num):randNum=`expr $sec % $num + 1`
4. 根據隨機數調用腳本:sh /path/`ls|sed -n ${randNum}p`

熱點內容
虛擬機搭建linux 發布:2024-05-02 13:02:48 瀏覽:186
哈弗f7配置怎麼使用 發布:2024-05-02 12:53:14 瀏覽:575
psv重新構建資料庫 發布:2024-05-02 12:43:53 瀏覽:792
農行對公密碼器的憑證號碼在哪裡 發布:2024-05-02 12:38:55 瀏覽:890
雙子星腳本 發布:2024-05-02 12:26:01 瀏覽:142
域名如何將程序部署到伺服器 發布:2024-05-02 12:25:38 瀏覽:948
命令行編譯lex 發布:2024-05-02 12:17:25 瀏覽:61
linux讀u盤 發布:2024-05-02 11:49:37 瀏覽:782
android圖片點擊全屏 發布:2024-05-02 11:48:55 瀏覽:432
androidmvc和 發布:2024-05-02 11:48:49 瀏覽:657