腳本調用
⑴ shell腳本中如何跨腳本調用其他腳本中的函數
這個前提是在你腳本運行過程中,其他腳本也需要運行並調用,然後可以把函數放到環境變數中,再從腳本中讀取環境變數
⑵ 如何調用2個bat腳本
有兩個批處理文件outter和批處理文件inner,其內容如下:
outter.bat
[plain] view plain print?
echo "start to call inner bat here"
inner.bat //第2行
echo "Back to outter bat" //注意這一行,它並未運行
inner.bat
[plain] view plain print?
echo "inner bat has been called."
如果像上面的在outter.bat調用inner.bat。我們發現outter.bat的第3行未執行。即inner完成後並不會把控制權交回outter。
正確的方法應該是:在所調用的批處理文件名前加上call,把文件的第2行變為call inner.bat即可,如下:
outter.bat
echo "start to call inner bat here"
call inner.bat //第2行
echo "Back to outter bat" //注意這一行,它並未運行
inner.bat
echo "inner bat has been called."
⑶ shell腳本里的函數怎麼調用
在代碼復用及可維護性方面,函數有著巨大的優勢,因此,把常用功能封裝成函數是一件非常平常的事。shell腳本中,怎麼定義函數及使用函數:
函數定義:
# func_name 函數名
function func_name(){
#函數體內容
}
或
# func_name 函數名
func_name(){
#函數體內容
}
函數調用:
func_name parm
函數體中,可以通過$1 $2 ...$9接受函數調用中的變數
函數可以通過return 返回函數執行的結果
可以通過下面一個簡單例子,來看下在shell腳本中怎麼定義使用函數:
1、在/root/bin目錄下新建函數文件main.fun
vim /root/bin/main.fun
2、在main.fun文件中編寫函數findit內容
#!/bin/sh
function findit(){
if [ $# -lt 1 ] ; then #判斷函數參數個數
echo "Usage: findit filename"
return 1
fi
for loop #遍歷調用函數的參數
do
find $HOME -name $loop -print
done
return 0
}
3、Shell中載入函數文件/root/bin/main.fun
. /root/bin/main.fun
4、檢查載入文件
set
set命令將在shell中顯示所有的載入函數
5、調用函數
findit mysql php #在home 目錄查找文件mysql 和文件php
⑷ 如何在C語言中調用腳本
用system
比如 腳本名字是a.sh的話
那麼就是
system("./a.sh");
⑸ 按鍵精靈 一個腳本如何調用另一個腳本
1、准備要導入的腳本,腳本的後綴名一般是【.Q】結尾。
⑹ javascript腳本中,一個腳本可以調用另一個腳本中的函數嗎哪位高手幫忙解決一下,謝謝~
可以的
只要將兩個腳本文件都引入進來,就可以調用了,不過,因為瀏覽器載入是有順序的,所以,要把包含有需要調用的那個函數的文件,先調用,就可以實現了。
比如,你有一個1.js
這個文件里有這樣一個函數:
function aa(){
alert("yes");
}
然後還有一個2.js
這裡面需要調用 那個1.js里的aa函數: aa();
那麼,在HTML文件里,你可以這樣:
<script charset="utf-8" src="1.js" type="text/javascript"></script>
<script charset="utf-8" src="2.js" type="text/javascript"></script>
注意順序,如果你不想因為順序問題而煩惱,你也可以在2.js裡面進行載入後運行:
window.onload = function(){ aa(); }
_____
就算是純的js腳本,你也需要一個運行環境吧,你的運行環境是什麼?
你可以根據你的運行環境的需要,來載入這些js文件
⑺ 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() 同樣的子進程做同樣的事情。
⑻ 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!
#
⑼ 如何在腳本里調用另一個腳本
shell就可以搞定
#!/bin/sh
#####
password = "asdasdsffdf"
(./depass.sh << END
$password
END
) | tail -n1
⑽ 按鍵精靈腳本調用
如果已經編譯成小精靈了,那就無能為力了(一個系統只能運行一個小精靈),如果是你自己寫的代碼,你不如把它們寫在一個腳本上(不過我估計不是你寫的)