Shell脚本中的 测试开关 和 特殊参数

简介:

1. 测试开关

Shell中自带的一些测试指令, 下表列出这些测试指令的含义以及是否可用于 test命令, bash, ksh.

开关

test

bash

ksh

定义

-a FILE   支持 支持 只是文件存在
-b FILE 支持 支持 支持 文件存在, 并且是一个类似于 /dev 下的磁盘设备之类的块文件
-c FILE 支持 支持 支持 文件存在, 并且是一个类似于 /dev 下的TTY设备之类的字符文件
-d FILE 支持 支持 支持 文件存在, 并且是一个标准目录
-e FILE 支持 支持 支持 只是文件存在
-f FILE 支持 支持 支持 文件存在, 并且是一个类似于平面文件的标准文件
-g FILE 支持 支持 支持 文件存在, 并且是一个set-group-ID. 这是指对文件可执行性的用户有效组进行改变的文件许可
-G FILE 支持 支持 支持 文件存在, 并且它的组所有权是用户的有效组ID
-h FILE 支持 支持 支持 文件存在, 并且它是一个符号链接. 和 -L 一样
-k FILE 支持 支持 支持 文件存在, 并且它粘着位设置. 这意味着只有文件的所有者或者目录的所有者可以删除文件
-l STRING 支持     和类似于 /usr/bin/test -l string -gt 5 && echo 的数字值, 比较 STRING 长度
-L FILE 支持 支持 支持 文件存在, 并且它是一个符号链接. 和 -h 一样
-n STRING 支持 支持 支持 STRING 的长度非零
-N FILE   支持 支持 文件存在, 但是自从最近一次读入之后, 已经被修改
-o OPTION 支持 支持 支持 如果 shell 的 OPTION 被打开, 返回真, 例如 set -x
-O FILE 支持 支持 支持 文件存在, 并且它的所有者由有效的用户ID决定
-p FILE 支持 支持 支持 文件存在, 并且它是一个命名管道 (or FIFO)
-r FILE 支持 支持 支持 文件存在, 并且可读
-s FILE 支持 支持 支持 文件存在, 并且它的大小大于 0 字节
-S FILE 支持 支持 支持 文件存在, 并且它是一个 socket
-t [FD] 支持 支持 支持 在一个终端打开 FD(文件描述符), 默认是 stdout
-u FILE 支持 支持 支持 文件存在, 并且 set-user-ID 被设置
-w FILE 支持 支持 支持 文件存在, 并且可写
-x FILE 支持 支持 支持 文件存在, 并且可执行
-z STRING 支持 支持 支持 STRING 的长度为 0

 

2. 特殊参数

shell中的特殊参数是shell的内部变量, 要用 前缀$ 来使用.

比如 echo $? 就是获取 shell内部变量 "?" 的值.

 

内容变量一览:

参数

定义

* 从 1 开始, 完成所有位置变量列表. 如果被双引号引上, 成为有 IFS (内部文件分隔符)值的第一个字符分割的单词
@ 从 1 开始, 完成所有位置变量列表. 如果被双引号引上, 将每一个位置参数变成单个词
# 以十进制表示的位置参数数目
? 最后或者最近一个前台任务的返回码. 如果任务被一个信号杀掉, 返回值为 128 加上信号的值. 例如: 标准kill信号值是 15, 那么返回值就是 143
- 所有发送给 shell 的标志, 或者 set 命令提供的标志
$ shell 进程ID. 如果在子shell中, 它被扩展为当前shell的值, 而不是子shell的值
! 最近被放到后台执行的命令的进程ID
_ 扩展为前一个命令的最后一个参数
0 扩展为shell或者shell脚本的名字
1…9 提供给shell, 函数或者脚本的位置参数. 比 9 大的值可以用 ${number} 来访问
标签:  linux


本文转自wang_yb博客园博客,原文链接:http://www.cnblogs.com/wang_yb/p/4064192.html,如需转载请自行联系原作者

目录
相关文章
|
6月前
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
2月前
|
Web App开发 JavaScript 测试技术
Playwright 极速入门:1 小时搞定环境搭建与首个测试脚本
本文带你1小时快速入门Playwright,完成环境搭建并编写首个测试脚本。Playwright是微软推出的现代化Web自动化测试工具,支持Chromium、Firefox和WebKit三大浏览器引擎,具备跨平台、多语言(Python/JS/Java/C#)特性。其核心优势包括:智能自动等待机制减少失败率、内置录制工具实时生成脚本、多语言灵活选择,以及真移动端设备模拟能力,显著提升测试效率和可靠性。
|
4月前
|
存储 Unix Shell
确定Shell脚本在操作系统中的具体位置方法。
这对于掌握Linux的文件系统组织结构和路径方面的理解很有帮助,是我们日常工作和学习中都可能使用到的知识。以上讲解详细清晰,应用简便,是每一个想要精通操作系统的计算机爱好者必备的实用技能。
98 17
|
4月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
113 4
|
4月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
253 3
|
5月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
391 25
|
5月前
|
Linux Shell
shell_42:Linux参数移动
总的来说,参数移动是Linux shell脚本中的一个重要概念,掌握它可以帮助我们更好地处理和管理脚本中的参数。希望这个解释能帮助你理解和使用参数移动。
85 18
|
6月前
|
网络协议 Shell 网络安全
面试官想听的不仅是命令——如何结构化回答“容器无Shell时如何测试外网”?
“说说看,如果一个Pod的容器没有Shell,如何测试它能否访问外网?”
面试官想听的不仅是命令——如何结构化回答“容器无Shell时如何测试外网”?
|
7月前
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
566 32
|
6月前
|
关系型数据库 Shell 网络安全
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。