Linux程序设计——shell
2012-03-28 21:34
232 查看
Linux是一个开源的操作系统,支持C/C++、Java、Ruby等程序设计语言,使用这些开发语言可以实现许多强大的功能,同样使用Linux系统本身提供的工具——shell也可以轻松实现这些强大的功能。相对于其他编程语言shell可以快速、简单地完成编程,而且易于配置、维护,具有较好的可移植性。但是shell也有一定的缺点,因为shell程序的特点使得其不适合用于完成时间紧迫型以及处理器忙碌型的任务。
shell语言和其他编程语言一样,有自己固定的语法结构,包括对变量、条件语句、控制结构、循环结构、选择结构、函数的定义。这些方面的定义及使用和其他编程语言都是很相似的,只是在一些细节处理方面有些需要注意的地方。
在shell脚本程序中可以执行命令,这里的命令包括两类,即内置命令和外部命令,相对外部命令,内置命令的执行效率更高。这些命令包括break、:、continue、.、echo、eval、exec、exit n、export、expr、printf、return、shift、trap、unset、find、grep。其中与grep命令相关的还有正则表达式。正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容,许多编程语言都支持正则表达式。通过正则表达式的编写,可以很方便地实现一些复杂的功能,简化代码的书写。
shell的功能强大之处还体现在图形化程序的开发。通过使用dialog工具命令创建各种类型的图形框。例如:
执行上述代码会在屏幕上显示一个图形化的消息框,点击OK按钮可以关闭这个消息框。除了消息框,图形框的类型还包括:复选框、信息框、输入框、菜单框、单选框、文本框以及是/否框。通过这些图形框的组合使用,能够实现简单的图形化程序的开发。下面是一个使用dialog工具命令的例子。
以上几个方面虽然只是对shell进行了简单的描述,但是可以看出shell本身是一种功能强大的程序设计语言,能够轻松调用其他程序并处理输出的信息,也正是因此使得shell成为文本和文件处理的理想工具。而且如果需要在Linux下开发应用程序而不确定其可行性时,可以利用shell编写测试程序,如果在shell中可以实现需要的功能,那么就可以使用其他语言实现。由此可见shell对于Linux程序设计有相当重要性的。
shell语言和其他编程语言一样,有自己固定的语法结构,包括对变量、条件语句、控制结构、循环结构、选择结构、函数的定义。这些方面的定义及使用和其他编程语言都是很相似的,只是在一些细节处理方面有些需要注意的地方。
在shell脚本程序中可以执行命令,这里的命令包括两类,即内置命令和外部命令,相对外部命令,内置命令的执行效率更高。这些命令包括break、:、continue、.、echo、eval、exec、exit n、export、expr、printf、return、shift、trap、unset、find、grep。其中与grep命令相关的还有正则表达式。正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容,许多编程语言都支持正则表达式。通过正则表达式的编写,可以很方便地实现一些复杂的功能,简化代码的书写。
shell的功能强大之处还体现在图形化程序的开发。通过使用dialog工具命令创建各种类型的图形框。例如:
dialog --msgbox "Hello World" 9 18
执行上述代码会在屏幕上显示一个图形化的消息框,点击OK按钮可以关闭这个消息框。除了消息框,图形框的类型还包括:复选框、信息框、输入框、菜单框、单选框、文本框以及是/否框。通过这些图形框的组合使用,能够实现简单的图形化程序的开发。下面是一个使用dialog工具命令的例子。
#!/bin/sh #Ask some question and collect the answer dialog --title "Questionnaire" --msgbox "Welcome to my simple survey" 9 18 dialog --title "Confirm" --yesno "Are you willing to take part?" 9 18 if [ $? != 0 ]; then dialog --infobox "Thank you anyway" 5 20 sleep 2 dialog --clear exit 0 fi dialog --title "Questionnaire" --inputbox "Please enter your name" 9 30 2>_1.txt Q_NAME=$(cat _1.txt) dialog --menu "$Q_NAME, what music do you like best?" 15 30 4 1 "Classic" 2 "Jazz" 3 "Country" 4 "Other" 2>_1.txt Q_MUSIC=$(cat _1.txt) if [ "$Q_MUSIC" = "1" ]; then dialog --title "Likes Classical" --msgbox "Good choice!" 12 25 else dialog --title "Doesn't like Classical" --msgbox "Shame" 12 25 fi sleep 2 dialog --clear exit 0除了dialog命令,如果Linux系统是基于GNOME的GUI,也可以使用gdialog命令代替dialog。
以上几个方面虽然只是对shell进行了简单的描述,但是可以看出shell本身是一种功能强大的程序设计语言,能够轻松调用其他程序并处理输出的信息,也正是因此使得shell成为文本和文件处理的理想工具。而且如果需要在Linux下开发应用程序而不确定其可行性时,可以利用shell编写测试程序,如果在shell中可以实现需要的功能,那么就可以使用其他语言实现。由此可见shell对于Linux程序设计有相当重要性的。
相关文章推荐
- linux c/c++ 程序设计(二)shell程序编程
- shell 程序设计2--- 那些年我们一起学习linux程序设计
- linux程序设计——shell程序设计(第二章)
- Linux程序设计笔记 第2章shell程序设计
- shell 程序设计3--- 那些年我们一起学习linux程序设计
- Linux程序设计-学习笔记-第二章shell程序设计
- Linux程序设计之shell
- Linux基础之简易Shell 程序设计
- linux 程序设计笔记 第二章 shell
- Linux程序设计之shell程序设计
- linux程序设计——shell程序设计(第二章)
- linux程序设计——shell程序设计(第二章)
- Linux程序设计第二章 shell程序设计 笔记
- Linux程序设计--shell程序设计基础(一)
- Linux shell 程序设计
- Linux程序设计--shell程序设计基础(二)
- shell 程序设计1--- 那些年我们一起学习linux程序设计
- [Linux] shell bash 脚本特殊变量 [大三TJB_708]
- linux bash shell之declare
- Linux - Shell 记录