这是我的解决方案,希望对您有所帮助。
使用 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 访问它时。我的脚本会处理这个问题,但是最好使用其中一种格式,并且大小写也应该是统一的……否则你会带来不必要的复杂性。