当前位置: 技术问答>linux和unix
SHELL 编程时要求用分模块编写各应用程序,然后由主菜单程序调用各子程序模块。主菜单如何调用子程序的呢?
来源: 互联网 发布时间:2016-12-26
本文导语: 如: The ULIB Program Hierarchy Chart ULIB 调用 EDIT,如果 ULIB代码如下: $ cat -n ULIB 1 # UNIX library 2 # ULIB: This program is the main driver for the UNIX 3 # library application program. It shows a brief 4 # startup message an...
如:
The ULIB Program Hierarchy Chart
ULIB 调用 EDIT,如果 ULIB代码如下:
接下来,EDIT直接命名为EDIT,放在和ULIB同一个目录,但是运行ULIB,选择1时,却不能调用 EDIT,为什么呢?
在SHELL编程中,主程序怎么调用 子程序模块呢?
The ULIB Program Hierarchy Chart
ULIB 调用 EDIT,如果 ULIB代码如下:
$ cat -n ULIB
1 # UNIX library
2 # ULIB: This program is the main driver for the UNIX
3 # library application program. It shows a brief
4 # startup message and then displays the main menu.
5 # It invokes the appropriate program according to the
6 # user selection.
7 BOLD=`tput smso` #将粗体显示的终端代码保存在BOLD中
8 NORMAL=`tput rmso` #将正常显示的终端代码保存在NORMAL中
9 export BOLD NORMAL # 使上述变量成为全局变量
10 # show the title and a brief message before showing
11 # the main menu
12 tput clear #清屏
13 tput cup 5 15 #置光标于5行15列
14 echo ”${BOLD}Super Duper UNIX Library” # 以粗体显示
15 tput cup 12 10 #置光标于12行10列
16 echo ”${NORMAL}This is the UNIX library application”
17 tput cup 14 10 ; #置光标于14行10列
18 echo ”Please enter any key to continue..._bc”
19 read answer # 读用户输入
20 error_flag=0 #将error_flag初始化为0
21 while true # 一直循环
22 do
23 if [ $error_flag -eq 0 ] #检查错误
24 then
25 tput clear # 清屏
26 tput cup 5 10
27 echo ”UNIX Library - ${BOLD}MAIN MENU${NORMAL}”
28 tput cup 7 20;echo ”0:${BOLD}EXIT${NORMAL} this program”
29 tput cup 9 20 ; echo ”1: ${BOLD}EDIT${NORMAL} Menu”
30 tput cup 11 20 ; echo ”2: ${BOLD}REPORTS${NORMAL} Menu”
31 error_flag=0 # 重置error_flag
32 fi
33 tput cup 13 10 ; echo ”Enter your choice>_bc”
34 read choice #读用户选择
35 #
36 # case construct for checking the user selection
37 #
38 case $choice in #检查输入
39 0 ) tput clear ; exit 0 ;;
40 1 ) EDIT ;; # 调用EDIT程序
41 2 ) REPORTS ;; # 调用REPORT程序
42 * ) ERROR 20 10 # 调用ERROR程序
43 tput cup 20 1 ; tput ed #清除从光标处到屏幕底部的部分
44 error_flag=1 ;; # 设置错误标志
45 esac
46 done
47 exit 0 # exit the program
接下来,EDIT直接命名为EDIT,放在和ULIB同一个目录,但是运行ULIB,选择1时,却不能调用 EDIT,为什么呢?
在SHELL编程中,主程序怎么调用 子程序模块呢?
|
要在你ulib文件中包含edit程序,类似c的include作用。
在你的edit程序中
. /你的edit程序
在你的edit程序中
. /你的edit程序
|
加绝对路径试试