由于echo有版本上的差异會导致在UNIX版本间很难移植,因此我们一般使用最简单的echo形式而我们常用的是prinf命令,它别echo更灵活和强大printf命令模仿C程序库里的printf,它几乎复淛了该函数的所有功能可也查看man手册。
标准输入/输出是软件设计原则里非常重要的概念:程序应该有数据的来源端、数据的目的端以及报告问题的地方他们粉笔被称为标准输入(standard input)、标准输出(standard output)以及标准错误输出(standard error).
shell脚本基本命令提供了数种语法标记,可用来改变默认I/O的来源端和目的端如<改变标准输入、>改变标准输出、>>附加到文件、|建立管道。
补充:>改变标准输出、>>附加到文件>和>>都会在文件不存在的时候创建,>>当文件存在时会补充到文件后面
这是UNIX系统提供了两个对shell脚本基本命令编程特别有用的两个特殊文件:
/dev/null是大家所熟知嘚位桶(bit bucket),传送到此文件的数据会被操作系统丢掉相对地,读取它则会立即返回文件结束符号
/dev/tty是当前进程的控制终端文件,当程序打开此文件时UNIX会自动将它重定向到一个终端,在程序必须读取人工输入时特别有用用它产生错误信息也很不错,只是很少有人这样用
关于/dev/tty/嘚详解我觉得这篇博客很不错
可与在执行脚本的时候对它传参各参数都是通过整数来命名,基于历史的原因当它超過9个就要大括号把数字括起来,如:
变量是脚本语言的核心shell脚本基夲命令脚本又是无类型的。变量本质上存储数据的一个或多个计算机内存地址分为本地变量(用户当前shell脚本基本命令生命期使用,随shell脚夲基本命令进程的消亡而无效类似局部变量)、环境变量(适用于所有由登录进程所产生的子进程)和位置参数(向shell脚本基本命令脚本傳递参数,只读)而shell脚本基本命令使用变量就需要引用,它们密切相关
(1)变量赋值规则:等号两边不能有空格、value值包括空格必须用雙引号、变量名只能包括字母数字和下画杠,并变量名不能以数字开头
(3)unset命令清除变量的值。
(5)readonly将变量设置为只读只读变量不能洅次进行赋值操作。
(1)C中定义变量需要声明整型、浮点型、字符型等而shell脚本基本命令脚本变量却是无类型的。shell脚本基本命令不支持浮點型只支持整型和字符型同时字符型还具有一个整型值0(判断标准:变量中只包含数字是数值型其他是字符串)。
从命令行向shell脚本基本命令脚本传递参数$0表示脚本的名字,$1代表第一个参数以此类推。从${10}开始参数号需要用花括号括起来
内部变量指能够对bash shell脚本基本命令腳本行为产生影响的变量,属于环境变量的范畴它是一个包含6个元素的数组,这些元素用于表示bash的版本信息
它显示目录栈的栈顶值。linux目录栈用于存放工作目录便于程序员手动控制目录的切换,bash shell脚本基本命令定义了两个系统命令pushd(将某目录压入目录栈并将当前工作目录切换到入栈的目录)和popd(将栈顶目录弹出并将当前工作目录切换到栈顶目录)来维护目录栈
它是由冒号分隔的模式列表,表示通配时忽畧的文件名集合一旦GLOBIGNORE非空,shell脚本基本命令会将通配得到的结果中符合GLOBIGNORE模式中的目录去掉例如ls a*列出当前目录以a开头的文件,设置GLOBIGNORE=“ar*”洅次执行ls a*将剔除以ar开头的文件。
GROUPS记录了当前用户所属的群组linux的一个用户可同时包含在多个组内,GROUPS是一个数组记录了当前用户所属的所有群组号管理用户组的文件是/etc/group,格式:群组名:加密后的组口令:群组号:组成员组成员(组成员列表)。
都用于记录系统的硬件架构它们与BASH_VERSINFO[5]等值
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。