Ring/课程/系统函数
在本章中,我们将学习系统函数
- System()
- Get()
- IsMSDOS()
- IsWindows()
- IsWindows64()
- IsUnix()
- IsMacOSX()
- IsLinux()
- IsFreeBSD()
- IsAndroid()
- Windowsnl()
- 获取命令行参数
- 获取活动源文件名
我们可以使用 system() 函数执行系统命令
语法
System(cCommand)
示例
System("myapp.exe") # Run myapp.exe
System("ls") # print list of files
我们可以使用 Get() 函数获取环境变量
语法
Get(cVariable)
示例
see get("path") # print system path information
我们可以使用 IsMSDOS() 函数检查操作系统是否为 MSDOS。
语法
IsMSDOS() ---> Returns 1 if the operating system is MS-DOS, Returns 0 if it's not
我们可以使用 IsWindows() 函数检查操作系统是否为 Windows。
语法
IsWindows() ---> Returns 1 if the operating system is Windows, Returns 0 if it's not
我们可以使用 IsWindows64() 函数检查操作系统是否为 Windows 64 位。
语法
IsWindows64() ---> Returns 1 if the operating system is Windows64, Returns 0 if it's not
我们可以使用 IsUnix() 函数检查操作系统是否为 Unix。
语法
IsUnix() ---> Returns 1 if the operating system is Unix, Returns 0 if it's not
我们可以使用 IsMacOSX() 函数检查操作系统是否为 Mac OS X。
语法
IsMacOSX() ---> Returns 1 if the operating system is Mac OS X, Returns 0 if it's not
我们可以使用 IsLinux() 函数检查操作系统是否为 Linux。
语法
IsLinux() ---> Returns 1 if the operating system is Linux, Returns 0 if it's not
我们可以使用 IsFreeBSD() 函数检查操作系统是否为 FreeBSD。
语法
IsFreeBSD() ---> Returns 1 if the operating system is FreeBSD, Returns 0 if it's not
我们可以使用 IsAndroid() 函数检查操作系统是否为 Android。
语法
IsAndroid() ---> Returns 1 if the operating system is Android, Returns 0 if it's not
see "IsMSDOS() --> " + ismsdos() + nl
see "IsWindows() --> " + iswindows() + nl
see "IsWindows64() --> " + iswindows64() + nl
see "IsUnix() --> " + isunix() + nl
see "IsMacOSX() --> " + ismacosx() + nl
see "IsLinux() --> " + islinux() + nl
see "IsFreeBSD() --> " + isfreebsd() + nl
see "IsAndroid() --> " + isandroid() + nl
输出
IsMSDOS() --> 0
IsWindows() --> 1
IsWindows64() --> 0
IsUnix() --> 0
IsMacOSX() --> 0
IsLinux() --> 0
IsFreeBSD() --> 0
IsAndroid() --> 0
我们可以使用 Windowsnl() 函数获取 Windows 换行符字符串。
语法
WindowsNL() ---> Returns a string contains CR+LF = CHAR(13) + CHAR(10)
示例
cStr = read("input.txt")
if iswindows() cStr = substr(cStr,windowsnl(),nl) ok
aList = str2list(cStr) # to do - list items processing using "for in" cStr = list2str(aList)
if iswindows() cStr = substr(cStr,nl,windowsnl()) ok
write("ouput.txt",cStr)
我们可以使用 sysargv 变量获取传递给 Ring 脚本的命令行参数。
sysargv 变量是一个列表,包含命令行参数。
示例
see copy("=",30) + nl
see "Command Line Parameters" + nl
see "Size : " + len(sysargv) + nl
see sysargv
see copy("=",30) + nl
nStart = sysargv[3]
nEnd = sysargv[4]
for x = nStart to nEnd
see x + nl
next
输出
b:\mahmoud\apps\ring>ring tests\syspara.ring 1 10
==============================
Command Line Parameters
Size : 4
ring
tests\syspara.ring
1
10
==============================
1
2
3
4
5
6
7
8
9
10
我们可以使用 filename() 函数获取活动源文件名 (*.ring)
语法
filename() ---> String contains the active source file name.
示例
see "Active Source File Name : " + filename() + nl
输出
Active Source File Name : tests\filename.ring
示例
if sysargv[2] = filename()
see "I'm the main program file!" + nl
# we can run tests here!
else
see "I'm a sub file in a program" + nl
ok