[Linux]设置脚本运行错误立即退出

一、简介

工作中常需要在linux环境下使用shell脚本自动化运行多条命令,在顺序执行多条命令时,需要在前一条命令运行失败时立刻结束脚本,停止运行接下来的其他命令。
本文介绍了三种实现该目标的方法,分别是:使用&&命令执行控制符,使用set -e设置shell options和使用trap 'do_somthing' ERR捕捉ERR信号进行自定义处理。

二、代码示例

1. 使用&&命令执行控制符

命令之间使用&&连接,实现逻辑与的功能,只有前面的命令成功运行才会继续运行之后的命令。
命令示例:

# command without error
echo "first command" && echo "second command" && echo "third command"

运行结果如下:

first command
second command
third command

若某条命令存在错误无法运行,则会立即结束,不再执行之后的命令。
命令示例:

# command with error
echo "first command" && echooo "second command" && echo "third command"

运行结果如下:

first command
echooo: command not found

2. 使用set -e命令

set -e命令可以设置shell在运行时,如果遇到管道返回非0状态(程序成功运行退出返回0),则立即退出。管道可能由单个简单命令,列表或复合命令组成。

set -e

Exit immediately if a pipeline (see Pipelines), which may consist of a single simple command (see Simple Commands), a list (see Lists of Commands), or a compound command (see Compound Commands) returns a non-zero status.

main.sh脚本示例:

#!/usr/bin/bash
# command without error
set -e
echo "first command"
echo "second command"
echo "third command"

运行main.sh后的结果如下:

first command
second command
third command

main.sh脚本中存在错误,无法运行,则会退出脚本。例如:

#!/usr/bin/bash
set -e
echo "first command"
# command with error
echooo "second command"
echo "third command"

运行main.sh后的结果如下:

first command
./main.sh: line 4: echooo: command not found

3. 使用trap命令

What does ‘set -e’ mean in a Bash script? 中网友给出了另一个用于在shell中中断错误命令运行的方法,即使用trap 'do_something' ERR 命令。
trap命令是一个shell内建命令,它用来在脚本中指定信号如何处理。例如,trap "echo 'error' && exit" ERR命令就是设置在shell脚本运行时,若遇到ERR信号则先使用echo命令打印error然后退出。

main.sh脚本示例:

#!/usr/bin/bash
# command without error
trap "echo 'error' && exit" ERR
echo "first command"
echo "second command"
echo "third command"

运行main.sh后的结果如下:

first command
second command
third command

main.sh脚本中存在错误,无法运行,则会先打印error然后退出脚本。例如:

#!/usr/bin/bash
trap "echo 'error' && exit" ERR
echo "first command"
# command with error
echooo "second command"
echo "third command"

运行main.sh后的结果如下:

first command
./main.sh: line 5: echooo: command not found
error

三、参考

[1]. linux中的分号&&和&,|和||说明与用法
[2]. What does ‘set -e’ mean in a Bash script?
[3]. Linux trap用法介绍

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
设计shell脚本程序,运行结果如下: 当用户输入相应的数字执行相应的功能。 2、设计shell脚本程序,在屏幕上输出操作系统的信息,包括计算机名、Linux分发版本名称、Linux内核版本和当前的IP地址。 3、设计shell脚本程序,要求用户对/home目录下的文件进行备份,压缩为Linux系统中常用的tar.gz格式。 4、设计shell脚本程序,假设用户建立了目录A和目录B,目录中不包含子目录,要求用户编写一个脚本程序,比较两个目录内文件的差异。 5、设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。 6、设计一个shell程序计算n的阶乘。要求: (1)从命令行接收参数n; (2)在程序开始后立即判断n的合法性,即是否有参数,若有是否为正整数,若非法请给错误提示; (3)最后输出计算的结果。 7、设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。 8、判断当前工作目录下所有的文件类型,如果是目录显示目录名,如果是文件查看文件内容,如果都不是,显示提示信息。 9、打印1-99之间的奇数到文件。 10、根据从键盘输入的学生成绩,显示相应的成绩等级,其中60分以下为“Failed!”,60~70分为“Passed!”,70~80分为“Medium!”,80~90分为“Good!”,90~100分为“Excellent!”。如果输入超过100分或低于0分,则显示错误分数提示。 文件和目录部分 1、编写程序,打开一个文本文件 (1)读取其中内容,将其复制到一个新建文件中; (2)将文件中的小写字母转换成为大写字母 ,其他字符不变。 2、编写程序,读取当前目录下的内容,并将其打印输出到终端。 3、编写程序,在/tmp目录下面建立一个test目录,然后在test目录下建立一个空文件hello.txt,注意函数出错处理。 4、编写程序实现一个简单的员工档案管理系统,具备简单的员工资料增加、删除和查询等功能,并采用二进制文件保存员工的资料信息。 5、为了便于文件的管理和传输,某些时候需要将特别大的文件切割为多个指定长度小的文件。现有一个文件管理程序需要实现大文件切割功能,要求用户编写一个函数实现该功能。 6、编写程序,根据输入的参数创建一个目录文件。 7、编写程序,首先输出当前的工作目录,然后更改工作目录,输出更改后的工作目录。 8、将存放学生各种信息的文件中的学生信息读出,重新组成一个存放所有学生的前3门成绩的文件。 9、创建一个新目录,然后删除此目录。 10、编写程序,编写shell命令中的ls命令。 11、编写程序,编写shell命令中的pwd命令。 getcwd()会将当前工作目录的绝对路径复制到参数buffer所指的内存空间中,参数size为buf的空间大小。 12、编写程序,编写shell命令中的cp命令。 13、编写Shell命令中的cat命令。 14、编写Shell命令中的tail命令。(用缓冲技术来提高效率) 15、编写Shell命令中的ls -i命令。 进程和信号部分 1、编写程序,获取并输出子进程和父进程的相关信息。 2、编写程序,要求用户设计多进程应用程序,改程序作为父进程执行,在执行过程中能够通过调用自身创建一个子进程。父进程和子进程均在终端中输出一条信息,标识自己的身份。 3、守护进程是运行于系统后台的进程,常用于提供各种系统服务和系统日志管理功能。现要求用户编写一个守护进程应用程序,定时向日志文件写入字符串。 4、编写程序,在不同的进程间实现信号发送和接收,同时在传达过程中附加其他信息。 5、编写程序,使用alarm函数在系统中设置一个定时器,期间对整数进行递减操作,并输出到屏幕。 6、现有一个应用程序在死循环中执行,要求用户让程序能够带捕捉用户按下的组合键Ctrl+C,终止应用程序的执行。 7、Linux系统提供了alarm( )和setitimer( )系统调用作为定时器的功能,要求用户使用这两个函数设计程序,让程序每隔一秒发出一个SIGALRM信号,每隔0.5秒发出一个SIGVTALRM信号。 8、编写程序,在主进程中创建一个子进程,子进程进行空循环,不停地输出“hello world!”字符串,主进程休眠一段时间后,在主进程中结束子进程,随后主进程也退出。 9、编写程序,在程序中使用命令行形式显示程序所在当前文件夹下的内容。 10、编写程序,得到当前进程的标识号,并将它打印输出,随后写入一个文件中。 11、在Linux系统下使用execl( )函数代替一个hello.c文件,在hello.c文件中实现从1到100的累加计算。 网络编程部分 1、在Linux系统下,通过TCP协议的套接字编程,在服务器端的计算机上实现累加求和的计算,数据全部从客户端传送,然后在服务器端计算的和输出到终端,并传送回客户端。 2、在Linux系统下,实现IP地址转换,将名字地址转换为数字地址。 3、利用read函数编写读取客户端数据(提示在程序中,首先监听一个端口,如果有客户端连接这个端口则接受这个连接,然后用read函数读取远程主机发送的数据,输出这些数据以后结束这个程序)。 4、编程实现一个面向连接的套接字服务程序和客户端程序。客户端打开一个文件,把文件内容传送给服务器端,服务器端接受到文件内容后,保存在/tmp目录下。 ...... ......
文件格式为azw3,文字版本,可以用kindle阅读,PC端可以用calibre,可以转成epub所有手机阅读软件都支持,对手机的排版支持还不错. 内容目录 第1天 文本操作指令 1.1 ar 指令:创建、修改或从档案文件中提取文件 1.2 aspell指令:检查文件的错误 1.3 bunzip2指令:解压缩.bz2类型的文件 1.4 bye指令:中断FTP连接 1.5 bzip2指令:压缩成.bz2类型的文件 1.6 bzip2recover指令:损坏.bz2文件的修复 1.7 cat指令:连接并输出文件内容 1.8 chattr指令:改变文件的属性 1.9 chgrp 指令:改变文件或者目录所属的用户组 1.10 chmod指令:改变文件或者目录的权限 1.11 chown指令:改变文件的拥有者或用户组 1.12 cksum指令:文件的CRC校验 1.13 cmp指令:比较文件差异 1.14 cp指令:复制 1.15 cpio指令:备份文件 1.16 csplit指令:分割文件 1.17 cut指令:剪切文件 1.18 diff指令:生成差异信息 1.19 diffstat指令:diff结果的统计信息 1.20 dump指令:文件系统备份 1.21 file指令:辨识文件类型 1.22 find指令:查找目录或者文件 1.23 fsck指令:检查并尝试修改文件系统错误 1.24 fsck.ext2指令:检查ext2文件系统并尝试修改错误 1.25 fsck.ext3指令:检查ext3文件系统并尝试修改错误 1.26 fsck.minix指令:检查文件系统并尝试修复错误 1.27 ftp指令:文件传输协议 1.28 ftpcount指令:显示ftp登录用户数 1.29 ftpshut指令:定时关闭ftp服务器 1.30 ftpwho指令:显示登录ftp用户信息 1.31 gunzip指令:解压缩文件 1.32 gzexe指令:压缩可执行文件 1.33 gzip指令:压缩文件 1.34 indent指令:调整C原始代码文件的格式 1.35 less指令:一次显示一页文本 1.36 lha指令:压缩或解压缩文件 1.37 ln指令:链接文件或目录 1.38 locate指令:查找文件 1.39 lpd指令:打印管理程序 1.40 lpq 指令:查看打印机列表中未完成的工作 1.41 lpr指令:输入打印文件 1.42 lprm 指令:将任务从打印机队列中移除 1.43 lsattr指令:显示文件属性 1.44 mattrib指令:变更或显示MS-DOS文件的属性 1.45 mc指令:菜单式文件管理程序 1.46 mcopy指令:复制MS-DOS文件 1.47 mdel指令:删除MS-DOS文件 1.48 mdir指令:显示MS-DOS目录 1.49 mkdir指令:建立目录 1.50 mktemp指令:建立暂存文件 1.51 more指令:显示文件信息 1.52 mmove指令:移动或重命名MS-DOS文件 1.53 mread指令:复制MS-DOS文件 1.54 mren指令:移动或重命名MS-DOS文件 1.55 mshowfat指令:显示MS-DOS文件的记录 1.56 mtools 指令:显示 mtools 支持的指令 1.57 mtoolstest 指令:测试同时显示mtools的相关设置 1.58 mv 指令:移动或更名现有的文件或目录 1.59 ncftp指令:文件传输 1.60 ncftpget指令:下载文件 1.61 ncftpput指令:上传文件 1.62 od指令:输出文件内容 1.63 paste指令:合并文件的列 1.64 patch指令:修补文件 1.65 rcp指令:远程复制文件或目录 1.66 rhmask指令:产生加密文件 1.67 rm指令:删除文件或目录 1.68 tac指令:反序输出文件 1.69 tar指令:打包同时压缩/解压缩文件 1.70 tee 指令:从标准输入读取数据到标准输出,同时保存为文件 1.71 tftp指令:传输文件 1.72 tmpwatch指令:删除临时文件 1.73 touch指令:更改文件/目录时间 1.74 umask指令:指定在建立文件时权限掩码 1.75 umount指令:卸除文件系统 1.76 unarj指令:解压缩文件 1.77 uncompress指令:解压缩.z文件 1.78 unzip指令:解压缩.zip文件 1.79 uucico指令:.uucp文件传输 1.80 uucp指令:在系统之间传送文件 1.81 uupick指令:处理接收文件 1.82 uuto指令:文件传送到远端主机 1.83 whereis指令:查找文件 1.84 which指令:查找文件 1.85 zip指令:压缩文件 1.86 zipinfo指令:显示压缩文件的信息 第2天 文本编辑指令 2.1 col指令:过滤控制字符 2.2 colrm指令:删除指定的列 2.3 comm指令:比较排序文件 2.4 ed指令:文本编辑器 2.5 egrep指令:输出匹配某种模式的行 2.6 emacs指令:文本编辑器 2.7 ex指令:在Ex模式下启动vim文本编辑器 2.8 expr指令:简单计算器 2.9 fgrep指令:匹配字符串 2.10 fmt指令:编排文本文件 2.11 fold指令:限制文件列宽 2.12 grep指令:匹配搜索 2.13 ispell指令:拼字检查程序 2.14 jed指令:编辑文本文件 2.15 joe指令:编辑文本文件 2.16 join指令:连接两个指定的文件 2.17 look指令:单字查询 2.18 mtype指令:显示MS-DOS文件的内容 2.19 pico指令:编辑文本文件 2.20 rgrep指令:递归查找 2.21 sed指令:利用script命令处理文本文件 2.22 sort指令:将文本文件内容加以排序 2.23 spell指令:拼字检查程序 2.24 tr指令:转换文件中的字符 2.25 uniq指令:检查文件中重复出现的行 2.26 vi指令:文字编辑器 2.27 vim指令:增强型vi文件编辑器 2.28 wc指令:计算字数 第3天 磁盘操作指令 3.1 automount指令:为auto文件系统配置挂载点 3.2 badblocks指令:检查磁盘坏道 3.3 cd指令:切换目录 3.4 cfdisk指令:磁盘分区 3.5 dd指令:转换复制文件 3.6 df指令:磁盘信息 3.7 dirs指令:显示目录信息 3.8 du指令:显示目录或文件所占的磁盘空间 3.9 edquota 指令:编辑用户或用户组的quota 3.10 eject指令:退出抽取式设备 3.11 e2fsck指令:检查ext2文件系统 3.12 fdformat指令:软盘格式化 3.13 fdisk指令:Linux磁盘分区 3.14 fsck 指令:检查文件系统并修复分区错误 3.15 fsck.ext2指令:检查ext2文件系统 3.16 fsconf指令:设置文件系统相关功能 3.17 hdparm指令:显示和设定硬盘参数 3.18 lndir指令:连接目录内容 3.19 losetup指令:设置循环设备 3.20 ls指令:列出目录内容 3.21 mbadblocks 指令:检查 MS-DOS文件系统的磁盘是否有损坏的磁区 3.22 mcd指令:在MS-DOS文件系统中切换工作目录 3.23 mdeltree指令:删除MS-DOS 目录/文件 3.24 mdu指令:显示MS-DOS目录所占用的磁盘空间 3.25 mformat指令:对MS-DOS文件系统的磁盘进行格式化 3.26 mkbootdisk指令:建立目前系统的启动盘 3.27 mkdir指令:建立目录 3.28 mkdosfs指令:建立MS-DOS文件系统 3.29 mke2fs指令:建立ext2文件系统 3.30 mkfs指令:建立各种文件系统 3.31 mkfs.ext2指令:建立ext2文件系统 3.32 mkfs.msdos 指令:建立 MS-DOS文件系统 3.33 mkinitrd指令:建立要载入ramdisk的映像文件 3.34 mkisofts指令:建立iso 9660映像文件 3.35 mkswap指令:设置交换区 3.36 mlabel 指令:显示/设置 MS-DOS磁盘驱动器的标签名称 3.37 mmd 指令:在MS-DOS 文件系统中建立目录 3.38 mmount指令:挂载MS-DOS文件系统 3.39 mount指令:挂载文件系统 3.40 mpartition指令:建立/删除MS-DOS的分区 3.41 mrd指令:删除MS-DOS文件系统中的目录 3.42 pwd指令:显示工作目录 3.43 quota指令:显示磁盘已使用的空间与限制 3.44 quotacheck 指令:检查磁盘的使用空间与限制 3.45 quotaoff指令:关闭磁盘空间限制 3.46 quotaon指令:开启磁盘空间限制 3.47 repquota指令:检查磁盘空间限制的状态 3.48 restore指令:还原dump操作备份文件 3.49 rmdir指令:删除目录 3.50 sfdisk指令:硬盘分区工具程序 3.51 stat指令:显示inode内容 3.52 swapoff指令:关闭系统交换分区 3.53 swapon指令:启动系统交换分区 3.54 symlinks指令:维护符号链接的工具程序 3.55 symlinks 指令:维护符号链接的工具程序 3.56 tree指令:以树状图显示目录内容 3.57 umount指令:卸除文件系统 第4天 网络通信指令 4.1 apachectl指令:apache HTTP服务器控制接口 4.2 arp指令:地址转换协议 4.3 arping指令:ARP请求报文 4.4 arpwatch指令:监听ARP记录 4.5 arptables指令:管理系统的ARP表 4.6 cu指令:主机间通信 4.7 dip指令:IP拨号连接 4.8 dnsconf指令:设置DNS服务器组态 4.9 efax指令:收发传真 4.10 getty指令:设置终端配置 4.11 httpd指令:apache http服务器程序 4.12 ifconfig指令:显示或者配置网络设备 4.13 mesg指令:控制终端的写入 4.14 minicom指令:调制解调器通信程序 4.15 nc指令:设置路由器 4.16 netstat指令:显示网络状态 4.17 newaliases指令:重建别名数据库 4.18 pine指令:处理电子邮件和新闻组 4.19 ping指令:检测主机 4.20 ppp-off指令:关闭ppp连线 4.21 pppsetup指令:设置ppp连线 4.22 pppstats指令:显示ppp连线状态 4.23 samba指令:控制Samba服务端 4.24 sendmail指令:邮件服务器程序 4.25 setserial指令:设置或显示串口的相关信息 4.26 smbclient指令:可存取SMB/CIFS服务器的用户端程序 4.27 smbd指令:Samba服务端 4.28 ssh指令:加密的远程登录工具 4.29 statserial指令:samba服务器程序 4.30 talk指令:与其他用户交谈 4.31 tcpdump指令:倾倒网络传输数据 4.32 telnet指令:远程登录 4.33 testparm 指令:测试 Samba 配置文件 4.34 traceroute指令:显示数据包到主机间的路径 4.35 tty指令:显示标准输入设备名称 4.36 uucp 指令:将特定文件复制到另一个特定系统 4.37 uulog指令:显示uucp记录信息 4.38 uuname指令:显示uucp远端主机 4.39 uustat指令:显示uucp状态 4.40 uux指令:在远端的uucp主机上运行指令 4.41 wall指令:发送信息 4.42 write指令:传送信息 4.43 ytalk指令:与其他用户交谈 第5天 系统管理指令 5.1 adduser指令:增加一个系统用户 5.2 arch指令:输出主机的体系结构 5.3 batch指令:执行批处理指令 5.4 bg指令:将程序放在后台执行 5.5 chfn指令:设置finger信息 5.6 chsh指令:改变登录系统时的shell 5.7 clear指令:清除屏幕信息 5.8 date指令:显示或设置系统时间 5.9 echo指令:字符串输出 5.10 exit指令:退出shell 5.11 finger指令:查找并显示用户信息 5.12 free指令:显示内存信息 5.13 fwhois指令:显示用户的信息 5.14 gitps指令:显示程序情况 5.15 groupadd指令:创建一个新群组 5.16 groupdel指令:删除一个群组 5.17 groupmod 指令:改变系统群组的属性 5.18 groups指令:查看用户属于哪个组 5.19 halt指令:关闭系统 5.20 help指令:显示shell内建指令的帮助信息 5.21 history指令:显示历史指令 5.22 id 指令:显示用户的ID 以及所属群组的ID 5.23 init指令:开关机设置 5.24 ipcs指令:显示进程间通信的信息 5.25 jobs指令:显示所有后台程序 5.26 kill指令:杀死执行中的进程 5.27 last指令:显示所有登录系统的用户相关信息 5.28 lastb 指令:显示登录系统失败的用户信息 5.29 login指令:登录系统 5.30 logname指令:显示登录账号 5.31 logout指令:退出系统 5.32 logrotate指令:管理log文件 5.33 man指令:帮助手册 5.34 nice指令:设置优先级 5.35 procinfo指令:显示系统状态 5.36 ps指令:报告程序状况 5.37 pstree指令:以树状图显示程序 5.38 reboot指令:重新启动 5.39 renice指令:调整优先级 5.40 rlogin指令:远端登录 5.41 rsh指令:远端登录的shell 5.42 rwho指令:查看系统用户 5.43 screen指令:多重视窗管理程序 5.44 shutdown指令:系统关机 5.45 skill指令:工作行程资讯与管理 5.46 sleep指令:休眠 5.47 su指令:变更用户身份 5.48 sudo指令:以其他身份来执行 5.49 suspend指令:暂停执行shell 5.50 swatch指令:系统监控程序 5.51 tload指令:显示系统负载 5.52 top指令:显示进程信息 5.53 uname指令:显示系统信息 5.54 useradd指令:建立用户账号 5.55 userconf指令:设置用户账号 5.56 userdel指令:删除用户账号 5.57 usermod指令:修改用户账号 5.58 vlock指令:锁定终端 5.59 w指令:显示登录系统的用户信息 5.60 who指令:显示系统用户信息 5.61 whoami指令:显示用户名 5.62 whois指令:查找用户/域名信息 第6天 系统设置指令 6.1 alias指令:设置指令的别名 6.2 apmd指令:高级电源管理 6.3 aumix指令:设置音效设备 6.4 bind指令:显示或者设置按键组合 6.5 chkconfig指令:设置系统的应用程序 6.6 chroot指令:改变根目录 6.7 clock指令:系统RTC时间设置 6.8 crontab指令:设置计时器 6.9 declare指令:声明 shell 变量 6.10 depmod指令:模块关系 6.11 dircolors指令:ls指令对应的显示颜色设置 6.12 dmesg指令:显示内核信息 6.13 enable指令:激活或关闭shell内建指令 6.14 eval指令:执行多个指令 6.15 export指令:设置或显示环境变量 6.16 fbset指令:设置帧缓冲区 6.17 grpconv指令:开启群组的投影密码 6.18 grpunconv 指令:关闭群组的投影密码 6.19 hwclock指令:显示与设定硬件时钟(rtc) 6.20 insmod指令:载入模块 6.21 kbdconfig指令:设置键盘类型 6.22 lilo指令:引导安装程序 6.23 liloconfig指令:设置程序的载入 6.24 lsmod 指令:显示Linux内核的模块信息 6.25 minfo指令:显示MS-DOS文件系统的各项参数 6.26 mkkickstart 指令:建立安装的组态文件 6.27 modinfo指令:显示内核信息 6.28 modprobe 指令:自动处理可载入模块 6.29 moouseconfig指令:设置鼠标相关参数 6.30 ntsysv指令:设置系统的各种服务 6.31 passwd指令:设置密码 6.32 pwconv指令:开启用户的投影密码 6.33 pwunconv 指令:关闭用户的投影密码 6.34 rdate 指令:显示其他主机的日期与时间 6.35 reset指令:设置终端机状态 6.36 resize指令:设置终端机视窗的大小 6.37 rmmod指令:删除模块 6.38 rpm指令:管理RPM包 6.39 set指令:设置shell 6.40 setconsole指令:设置系统终端 6.41 setenv指令:查询或显示环境变量 6.42 setup指令:设置公用程序 6.43 sndconfig指令:设置声卡 6.44 timeconfig指令:设置时区 6.45 ulimit指令:控制shell程序的资源 6.46 unalias指令:删除别名 6.47 unset指令:删除变量或函数 6.48 up2date指令:更新Linux系统 6.49 vmstat指令:显示虚拟内存空间 第7天 其他常见指令 7.1 as指令:标准GNU汇编程序 7.2 autoconf指令:产生配置脚本 7.3 autoheader指令:为configure产生模板头文件 7.4 autoreconf指令:更新已经生成的配置文件 7.5 autoscan指令:生成configure.in模板文件 7.6 autoupdate 指令:更新 configure.in文件 7.7 gcc指令:GNU的C和C++编译器 7.8 gdb指令:GNU调试器 7.9 gdbserver指令:远端GNU服务器 7.10 ld指令:链接目标文件和库文件 7.11 make指令:编译内核或模块 7.12 nm指令:显示目标文件中的符号 7.13 startx指令:启动x-Windows图形界面 7.14 xhost指令:设置X服务器的访问权限 7.15 xinit指令:启动x-Windows 7.16 xlsclients 指令:显示正在运行的 X程序 7.17 xlsfonts指令:显示目前X服务器可使用的字体 7.18 xset指令:设置x-Windows
Linux脚本语言是指在Linux系统上运行的一种脚本语言,它是一种高级的命令语言,可以通过编写脚本来执行一系列的操作。 下面是一个简单的Linux脚本示例: ```bash #!/bin/bash # This is a comment echo "Hello World!" # This is also a comment ``` 以上代码是一个简单的脚本,其说明如下: - `#!/bin/bash` 表示这个脚本使用 bash 解释器来运行。 - `# This is a comment` 和 `# This is also a comment` 表示这两行文本是注释,不会被执行。 - `echo` 命令用于输出文本到终端。 接下来,我们来学习一些常用的Linux脚本语言命令: - `echo`:输出文本到终端。 - `read`:从终端读取输入。 - `if`、`elif`、`else`:条件语句,用于根据条件执行不同的命令。 - `for`、`while`:循环语句,用于重复执行一组命令。 - `case`:条件语句,类似于 switch 语句。 - `function`:定义函数。 - `alias`:定义命令别名。 下面是一个简单的示例,演示了如何编写一个带有条件语句和循环语句的 Linux 脚本: ```bash #!/bin/bash echo "Enter a number between 1 and 5" read num if [ $num -lt 1 ] || [ $num -gt 5 ]; then echo "Invalid number!" exit 1 fi for i in $(seq 1 $num); do echo "Counting: $i" done echo "Done counting!" ``` 以上代码中,首先要求用户输入一个数字,然后通过 if 语句判断数字是否在 1 到 5 之间,如果不是,则输出错误信息并退出。接着使用 for 循环语句来重复执行一组命令,输出数字的计数器。最后输出 Done counting! 表示计数结束。 总体来说,Linux脚本语言是一种非常强大的工具,可以用于自动化执行各种任务。掌握 Linux 脚本语言可以极大地提高工作效率,对于系统管理员、开发人员和运维人员来说都非常有用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值