转载地址:http://www.jb51.net/article/34330.htm
-f 和-e的区别
Conditional Logic on Files
-a file exists.
-b file exists and is a block special file.
-c file exists and is a character special file.
-d file exists and is a directory.
-e file exists (just the same as -a).
-f file exists and is a regular file.
-g file exists and has its setgid(2) bit set.
-G file exists and has the same group ID as this process.
-k file exists and has its sticky bit set.
-L file exists and is a symbolic link.
-n string length is not zero.
-o Named option is set on.
-O file exists and is owned by the user ID of this process.
-p file exists and is a first in, first out (FIFO) special file or named pipe.
-r file exists and is readable by the current process.
-s file exists and has a size greater than zero.
-S file exists and is a socket.
-t file descriptor number fildes is open and associated with a terminal device.
-u file exists and has its setuid(2) bit set.
-w file exists and is writable by the current process.
-x file exists and is executable by the current process.
-z string length is zero.
是用 -s 还是用 -f 这个区别是很大的!
实例代码:
#!/bin/sh # 判断文件是否存在 # link:www.jb51.net # date:2013/2/28 myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" # 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限 if [ ! -x "$myPath"]; then mkdir "$myPath" fi # 这里的-d 参数判断$myPath是否存在 if [ ! -d "$myPath"]; then mkdir "$myPath" fi # 这里的-f参数判断$myFile是否存在 if [ ! -f "$myFile" ]; then touch "$myFile" fi # 其他参数还有-n,-n是判断一个变量是否是否有值 if [ ! -n "$myVar" ]; then echo "$myVar is empty" exit 0 fi # 两个变量判断是否相等 if [ "$var1" = "$var2" ]; then echo '$var1 eq $var2' else echo '$var1 not eq $var2' fi
相关推荐
在给定的标题和描述中,我们关注的是如何编写一个Shell脚本来判断文件或目录是否存在。这里有两个不同的实现代码示例,它们都展示了如何使用Bash Shell中的条件测试来检查文件和目录的状态。 首先,我们来看实现...
### Shell脚本实现本地文件与服务器文件同步 #### 背景与意义 在软件开发过程中,经常需要将本地开发环境中的文件同步到服务器上进行部署或测试。手动上传不仅耗时而且容易出错,因此编写一个自动化脚本来实现文件...
在IT行业中,自动化运维是提升效率的关键之一。这个"shell脚本远程启动其他服务器的...文件"sysLoginSh"很可能是实现这些功能的具体shell脚本代码,通过对它的分析和理解,我们可以进一步优化和定制自动化运维流程。
此外,Shell脚本还涉及到文件和目录操作,例如创建、删除、移动文件,列出目录内容,改变工作目录等。这些操作对系统管理至关重要。你还会学到如何利用正则表达式进行文本匹配和替换,以及如何通过逻辑运算符和比较...
在Shell脚本中,你可以使用`[ ]`或`[[ ]]`来进行条件检查,比如测试文件是否存在、比较数值或字符串。书中会详细解释这些操作符及其用法。 文件和目录操作也是Shell脚本的重要部分。例如,`cd`用于改变当前工作目录...
### Shell脚本实现从文件夹中递归复制文件 #### 背景介绍 在日常工作中,有时我们可能需要从多层嵌套的文件夹结构中提取特定的文件或者进行数据整理工作。对于这种需求,手动操作显然是低效且耗时的。此时,利用...
- 条件测试:如`[ -f file ]`检查文件是否存在,`[[ $var == "value" ]]`进行字符串比较。 - 脚本函数:定义和调用自定义函数,组织代码逻辑。 - 错误处理:使用`set -e`使脚本在遇到错误时立即停止,`trap`捕获信号...
以上这些例子涵盖了基本的Shell脚本操作,如变量使用、条件判断、流程控制、系统命令调用以及定时任务设置等。通过学习和实践这些脚本,可以深入了解Shell脚本编程,提升系统管理能力。对于Linux系统管理员、开发者...
例如,你可以使用`if`语句检查文件是否存在,或者使用`for`循环遍历文件夹中的所有文件。 通过熟练掌握这些基础知识,你可以编写出功能强大且高效的Shell脚本来自动化日常任务,提高工作效率。在实际应用中,不断...
3. **输入输出重定向**:Shell脚本支持标准输入(stdin)、标准输出(stdout)和标准错误(stderr)的重定向,这使得脚本能与文件交互或过滤输出信息。 4. **文件操作**:学会使用文件和目录操作命令如`cat`, `more...
**Shell脚本学习指南** Shell脚本是Linux和Unix系统中的强大工具,它允许用户通过编写脚本来自动化一系列命令操作,极大地提高了系统管理和任务执行的效率。本文将深入探讨shell脚本的基础知识,包括语法、变量、...
Shell提供了许多文件测试运算符,如`-e`检查文件是否存在,`-d`检查是否为目录,`-f`检查是否为普通文件等,常用于条件判断。 9. **错误处理与调试** 使用`set -e`开启脚本的退出错误检测,任何非零退出状态都会...
编写Shell脚本不仅可以简化重复性工作,还可以实现更复杂的逻辑控制,比如条件判断、循环等。 `my.sh`这个文件很可能是实现特定功能的Shell脚本。在实际应用中,这种脚本可能包含了各种常见的命令,如文件操作...
标题中的“在指定目录查找指定后缀文件的shell脚本代码”是指利用Unix/Linux系统中的shell脚本语言,编写一个程序来搜索特定目录及其子目录下的具有特定扩展名的文件。这种功能对于开发者来说非常实用,例如在大量源...
"如何编写一个shell脚本.doc"文档可能包含具体的步骤和示例,教授如何从无到有地编写一个完整的Shell脚本,包括定义变量、处理输入参数、执行条件判断、进行文件操作等。 通过学习这些知识点,并结合实际的编程练习...
4. 条件判断:解释shell脚本中如何使用条件判断语句,例如if-else、case语句,来根据不同的条件执行不同的代码块。 5. 循环结构:讲解在shell脚本中如何使用for循环、while循环和until循环来重复执行一段代码直到...
一例批量转换目录下文件编码的shell脚本代码。 需求描述:由于从window转linux过来,很多原来win下的gbk文件需要转换成utf8。 以下脚本仅判断非utf8文件转换成utf8文件,并且默认非utf8文件为gbk,如果文件类型不...
shell脚本编程学习笔记汇总 本文档总结了 Linux shell 脚本编程的学习笔记,涵盖了 shell 脚本的定义、...文件表达式用于判断文件的属性,例如 `file1 -ef file2`,判断 file1 和 file2 是否拥有相同的信息节点编号。
- **函数定义与调用**:Shell脚本支持函数定义,可以提高代码的复用性和可读性。 - 示例: ```bash function greet() { echo "Hello, $1" } greet "Alice" ``` - **错误处理**:通过设置脚本的退出状态码...