shell编程

作者:
时间:2022/09/13
浏览:
评论:沙发尚在
分类:域名空间
标签:

***使用自己定义的变量:**(仅在当前Shell实例中有效,其他Shell启动的程序不能访问局部变量。

**C语言程序的执行方式**我觉得说到这里有必要来学习一下c语言编译的过程,参考了https://www.cnblogs.com/CarpenterLee/p/5994681.html****从c语言程序到可执行文件一共有四步,1.预处理(Preprocessing),2.编译(Compilation),3.汇编(Assemble),4.链接(Linking。

PATH决定了shell将到哪些目录中寻找命令或程序HOME当前用户主目录HISTSIZE历史记录数LOGNAME当前用户的登录名HOSTNAME指主机的名称SHELL当前用户Shell类型LANGUGE语言相关的环境变量,多语言可以修改此环境变量MAIL当前用户的邮件存放目录PS1基本提示符,对于root用户是,对于普通用户是$***使用Linux已定义的环境变量:**比如我们要看当前用户目录可以使用:echo$HOME命令;如果我们要看当前用户Shell类型可以使用echo$SHELL命令。

业界所说的shell通常都是指shell脚本,但读者朋友要知道,shell和shellscript是两个不同的概念。

KenThompson的sh是第一种UnixShell,WindowsExplorer是一个典型的图形界面Shell。

第二行加了花括号,能正确的识别到your_name是一个变量,值为qinjx,输出结果为qinjxSB。

***第一个shell脚本打开文本编辑器(可以使用vi/vim命令来创建文件),新建一个文件test.sh,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell脚本,扩展名就用php好了。

这里的”系统”,其实就是shell这个应用程序(想象一下WindowsExplorer),但我故意写成系统,是方便理解,既然这个系统就是指shell,那么一个使用/bin/sh作为解释器的脚本是不是可以省去第一行呢?是的。

在一般情况下,人们并不区分BourneShell和BourneAgainShell,所以,像**!/bin/sh**,它同样也可以改为**!/bin/bash**。

***环境shell编程跟java、php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

这种方式下,我们使用PC平台上的Windows工具开发针对Windows本身的可执行程序,这种编译过程称为nativecompilation,中文可理解为本机编译。

Shell是一个命令解释器,解释执行用户所输入的命令和程序。

LinuxLinux默认安装就带了shell解释器。

•cygwin•mingw**脚本解释器****sh**即Bourneshell,POSIX(PortableOperatingSystemInterface)标准的shell解释器,它的二进制文件路径通常是/bin/sh,由BellLabs开发。

同时,Bash也是大多数Linux系统默认的Shell。

编译型语言,只要有解释器,也可以用作脚本编程,如Cshell是内置的(/bin/csh),Java有第三方解释器Jshell,Ada有收费的解释器AdaScript。

**Linux**Linux默认安装就带了shell解释器。

因为sh和bash在这方面很弱,比如说:*它的函数只能返回字串,无法返回数组*它不支持面向对象,你无法实现一些优雅的设计模式*它是解释型的,一边解释一边执行,连PHP那种预编译都不是,如果你的脚本包含错误(例如调用了不存在的函数),只要没执行到这一行,就不会报错环境兼容性如果你的脚本是提供给别的用户使用,使用sh或者bash,你的脚本将具有最好的环境兼容性,perl很早就是linux标配了,python这些年也成了一些linux发行版的标配,至于macos,它默认安装了perl、python、ruby、php、java等主流编程语言。

解释器的动态性会很好,因为改一个东西不是牵一发而动全身,它本身就是一句一句解释的,而c程序改一个地方就要重新编译一次才行。

关于awk的学习资料网上有很多,但只要静下心来把这本书中的代码敲一遍,就可以无视其他所有材料了。