bash内置命令的使用方法与外部命令相同。我们介绍了一些内置命令的用法。本文接着介绍其他常用的内置命令的用法。1.:该命令的执行没有任何作用,但会在命令执行前进行参数扩展和重定向。命令的返回值为0。例子:#!/bin/bash#可以在while复合命令中使用,形成死循环while:docmddone#当然,内置命令:可以替换成任意返回值为0的命令,如:whiletruedocmddone#oruntilfalsedocmddone#例如判断一个变量值是否为空,如果为空则退出脚本:${parameter:?$(echo-en"\033[40;36m变量值为空,请正确设置变量!\033[0m")}#为了达到类似的效果,如果写成if语句,会是这样:if[!${parameter}];thenecho-e"\033[40;36m变量值为空,请正确设置变量!\033[0m"exit2fi#也可以使用:配合HereDocumentsasmulti-linecomments:<>tmp_filedoneExecution:[root@centos7~]#./test.sh#开启调试模式(-x)+trap'echo'\''protected'\'''12320+((i=1))+((i<5))+sleep0.5+((i++))+((i<5))+sleep0.5^C++echoprotected#这里执行CTRL+C,忽略信号,执行echo命令protected+((i++))+((i<5))+sleep0.5+((i++))+((i<5))+sleep0.5+((i++))+((i<5))+trapHUPINTQUITTSTP+touchtmp_file+trap'rm-ftmp_file;exit'INT#重置CTRL+C后的信号处理恢复信号功能+:+sleep10^C++rm-ftmp_file#此时执行CTRL+C后,删除临时文件,退出脚本。++exit[root@centos7~]#9.ulimitulimit命令用于控制进程对系统资源的使用。这些限制仅适用于当前shell进程及其子进程。选项-a显示所有当前资源限制:[root@centos7~]#ulimit-acorefilesize(blocks,-c)0datasegsize(kbytes,-d)unlimitedschedulingpriority(-e)0filesize(blocks,-f)unlimitedpendingsignals(-i)31209maxlockedmemory(kbytes,-l)64maxmemorysize(kbytes,-m)unlimitedopenfiles(-n)1024pipesize(512bytes,-p)8POSIXmessagequeues(bytes,-q)819200real-timepriority(-r)0stacksize(kbytes,-s)8192cputime(seconds,-t)unlimitedmaxuserprocesses(-u)31209virtualmemory(kbytes,-v)unlimitedfilelocks(-x)每行无限输出表示一个限制,用括号中的单位和选项来修改限制。每一项代表什么在文件/etc/security/limits.conf中有解释。选项-H和-S分别代表设置或显示硬限制和软限制,硬限制代表实际限制,超过就会报错。softlimit不是严格的限制,超过了会有警告信息。如果设置时不指定-H或-S,则表示同时设置硬限制和软限制。ulimit更改设置仅在当前会话中有效。如果需要在系统级别生效,需要修改配置文件/etc/security/limits.conf或者/etc/security/limits.d目录下的文件。