これが私の解決策です、それが役立つことを願っています。
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を使用してアクセスしようとしている間。私のスクリプトはこれを処理しますが、フォーマットのいずれかを使用する方が適切であり、大文字と小文字も同じである必要があります...そうでない場合は、不必要な複雑さを招きます。