[root@hostname bin]# ./catalina.sh run
我一直不理解这个“./”到底是什么意思,其实很好理解。
1.首先,我们看一下Windows在命令行里是怎么运行可执行程序的:
当前目录在D盘时,我运行C盘下的微信,需要指定完整的路径;当前目录就在微信的安装目录下时,我运行微信,直接指定exe可执行文件名就可以了。
搞懂了Windows怎么运行程序,Linux也是一样,说白了,都是直接敲文件名就能执行。
2.那Linux中的“.”到底是啥意思?为啥一定要敲一个“./”呢?
.和./就是表示当前目录。同Windows一样,Linux也是当前目录下没有可执行文件时,需要指定完整的路径;当前目录下有可执行文件时,直接指定可执行文件名就可以了。只不过Linux有点呆呆的,执行当前目录下的可执行文件时,必须要额外多敲一个"./",否则的话它自己不知道在当前目录下找这个可执行文件。
不加这个“./”,Linux就会从环境变量PATH中定义的路径中找可执行文件,只有加了这个“./”之后,Linux才会从当前目录中找可执行文件。
外延1:Windows和Linux中的command not found道理也是一样的,都是给定的路径不正确,导致找不到可运行文件。
Windows中直接运行微信如图:
Linux中直接运行Tomcat如图:
外延2:Windows中的PATH这个环境变量和Linux中的PATH作用是一样的
Windows中能直接运行记事本,就是因为环境变量PATH里设置了C:\Windows\System32这个路径
当把PATH里中的C:\Windows\System32这个路径去掉之后,就无法直接在命令行中运行记事本了。
运行()中间是你的命令调用格式: 〈逻辑型〉 运行 (文本型 欲运行的命令行,逻辑型 是否等待程序运行完毕,[整数型 被运行程序窗口显示方式]) - 系统核心支持库->系统处理
英文名称:run
本命令运行指定的可执行文件或者外部命令。如果成功,返回真,否则返回假。本命令为初级命令。
参数<1>的名称为“欲运行的命令行”,类型为“文本型(text)”。
参数<2>的名称为“是否等待程序运行完毕”,类型为“逻辑型(bool)”,初始值为“假”。
参数<3>的名称为“被运行程序窗口显示方式”,类型为“整数型(int)”,可以被省略。参数值可以为以下常量之一:1、#隐藏窗口; 2、#普通激活; 3、#最小化激活; 4、#最大化激活; 5、#普通不激活; 6、#最小化不激活。如果省略本参数,默认为“普通激活”方式。
*** 作系统需求: Windows、Linux
我不太明白你说的是什么意思,Linux下的C编程一般是通过gcc实现的。\x0d\x0a例如,创建了一个hello.c文本,在文本中写入\x0d\x0a#include\x0d\x0aintmain(void)\x0d\x0a{\x0d\x0aprintf(“helloworld!!”)\x0d\x0areturn0\x0d\x0a}\x0d\x0a然后在终端输入\x0d\x0a$gcc_ohellohello.c\x0d\x0a$/tmp/hello\x0d\x0a注:hello.c文件放在/tmp目录下,通过gcc-ohellohello.c命令生成一个hello文件,它是一个可执行文件,然后直接执行,就可以运行该程序了。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)