這是我的解決方案,希望它會有所幫助。
使用all_script文件來存儲所有內容。 我的樣本文件的內容是:
Script_1
{
echo executing script1
echo 1st arg = $1
echo 2nd arg = $2
echo rest arg = $*
}
Script_2
{
echo script2
echo 1st arg = $1
echo 2nd arg = $2
echo rest arg = $*
}
Script_3
{
echo script3
echo 1st arg = $1
echo 2nd arg = $2
echo rest arg = $*
}
我的腳本來運行這個:
#! /bin/csh -f
set script_name = `echo $argv[1] | sed 's/-s/S/g' | sed 's/t/t_/g'`
set script_arg = "$argv[2-$#argv]"
#grep the relevent script
grep -A1000 $script_name all_script | grep -B1000 -m1 "}" | sed 's/Script_[0-9]//g' | sed 's/{//g' | sed 's/}//g' > myscript
csh ./myscript $script_arg
echo "DONE :)"
更改基於腳本的最大長度數量1000。 另外,請注意,您已將Script_1用作文件中的腳本名稱。而您嘗試使用參數-script1訪問它時。我的腳本負責處理這個問題,但是最好使用其中一種格式,並且應該使用統一的格式......否則您將招致不必要的複雜性。
來源
2012-04-15 13:42:50
Ani
你爲什麼要這樣做?文件很便宜;把每個腳本放在它自己的文件名中。 – 2012-04-13 10:43:04
只是爲了幫助理念,而不是攜帶多個腳本。最好有一個單一的劇本! – user1228191 2012-04-13 10:47:42
它使腳本變慢;所有腳本必須在您想運行的腳本運行之前完全解析。當然,你可以使用通用的'函數'(腳本的片段 - 'csh'具有POSIX shell的功能嗎?)。我在我的私人'$ HOME/bin'目錄中有數百個程序,其中很多是腳本(總共528個條目; 12個子目錄; 132個可執行文件;因此,384個腳本)。 – 2012-04-13 10:53:03