在 Windows 里我们经常会看到一种扩展名为 .bat 的文件,它称为批处理文件。批处理文件的作用是把许多个命令放在一个文件里,当运行这个文件的时候就执行文件中的所有命令。其实 shell 脚本与批处理非常相似。但是它即然被称为“脚本”那必然有不同的地方。
Linux 中的 shell 脚本是一种文本文件,与 Windows 中的批处理文件一样。我们可以用任何一款文本编辑器打开它。包括 Windows 中的记事本、写字板,以及 Word。也许是因为它具备了一些可编程的特征,可以执行较为复杂的功能,所以被称为“脚本”。
建议在编写 shell 脚本的时候使用图形化的编辑器。计算机始终是工具,发明工具的初衷是化繁为简、提高效率。我们进入“红旗 5.0”后用鼠标左键单击“开始”-->“应用程序”-->“附件”-->“文本编辑器”打开 KEdit 文本编辑器。输入如下内容。
#!/bin/sh
echo 如果不能正常运行,请安装 Java 虚拟机 1.5 版
java -jar JavaApplication1.jar &

然后我们将它保存成 startjar。在“红旗 5.0”中文本文件的图标如下:

大家是不是认为我们少了扩展名?其实 Linux 里很多文件没有扩展名的。就是在 Windows 中文件即使没有扩展名也是能用的。看看是不是太简单了。第一句是声明喽,这是一个脚本文件。符号 #! 是告诉系统后面的参数是用来执行该文件的程序,这里我们使用 /bin/sh 来执行程序。(脚本语言解释器?)
echo 命令是用来在终端中打印或显示后面的内容。而最下面一行学过一点 Java 编程的人都知道是 Java 虚拟机带的用了运行 Java 可执行 Jar 文件的命令,JavaApplication1.jar 是要执行的文件名。但后面跟着一个 & 符号是什么意思呢?
我们每次在终端中运行一个命令的时候,这个命令就要占用终端里当前的会话。只有当这个命令运行完之后才会释放会话。释放会话的标志就是出现提示符。如果我们执行了一个很大的程序通常要等半天才能看见提示符。& 符号跟在要运行的命令后面就是告诉终端这个命令启动后在后台运行并且释放当前的会话。结果就是“输入命令”-->“敲下回车”-->“启运命令”-->“释放会话”,很快就能见到提示符,好让我们输入下一条命令。
现在让我们打开终端,输入如下命令:chmod +x <路径> <文件名>,或:chmod 775 <路径> <文件名>。命令的意思是这样的:chmod 用于更换文件或目录的权限。+x、775 是参数,都是用于将刚才编写的文本文件变成可执行的脚本文件。

在“红旗 5.0”中可执行脚本文件的图标如下:

现在我们进入脚本文件当前的目录,执行我们刚才建立的 startjar 文件。需要注意的是,我们刚才建立的脚本需要放在与可执行的 jar 文件相同的目录中才有效。

现在我们差不多能同时看到执行 jar 文件后打开的 Java 程序界面,和终端提示符。

djdior0622 于 2007-11-20 09:13:54发表:
(6)m:b
marco.chan 于 2007-11-19 16:27:26发表:
关于shell,在chinaunix上有个shell十三问,绝对经典的教材!
http://bbs.chinaunix.net/thread-218853-1-1.html
做系统管理不学shell是不行的~
balwxf 于 2007-11-19 03:42:12发表:
@echo off
cls
color 0A
echo IP地址更改 WINOS.CN
set IP=192.168.1.1
set MASK=255.255.255.0
set GATEWAY=192.168.1.0
set NAME="本地连接"
echo.
echo 自动更改IP 请按 1
echo.
echo 手动更改IP 请按 2
set /p KEY= [您的选择是:]
if %KEY% == 1 goto ONE
if %KEY% == 2 goto TWO
:TWO
ECHO 您选择了手工修改设置。
ECHO.
echo 默认IP地址是%IP%,回车输入默认地址
set /p IP= [请输入IP地址:]
echo.
echo 默认MASK是%MASK%,回车输入默认值
set /p MASK= [请输入 子网掩码 地址:]
echo.
echo 默认GATEWAY是%GATEWAY%,回车输入默认值
set /p GATEWAY= [请输入 网关 地址:]
echo.
:ONE
echo 正在自动更改IP......
netsh interface ip set address %NAME% static %IP% %MASK% %GATEWAY% auto
echo IP地址/子网掩码/网关设置完成
pause
laonanr 于 2007-11-16 13:29:59发表:
:0w223dc 为什么可以写出这么关怀我这新人 的帖子啊,感动ING!!
zpsevenstar 于 2007-09-16 00:30:03发表:
:0L :0L :0L