首页 > 系统相关 >shell 之 if 判断

shell 之 if 判断

时间:2025-01-22 12:42:59浏览次数:1  
标签:shell file permission device 判断 str test

一、shell 示例

#!/bin/bash

str="Hello"
if [ -n "$str" ]; then
    echo "The string is not empty."
else
    echo "The string is empty."
fi

一、if 表达式说明

在 shell 脚本中,-n 选项用于条件表达式,以检查字符串是否为非空(non-empty)。

if [ -n "$str" ]; 的分解:

  • -n:测试字符串是否不为空(即,其长度大于零)。
  • "$str":正在测试的变量。将其括在双引号中可防止变量为空或未设置时出现错误。
  • []:这些是 test 命令的一部分,用于评估表达式。确保括号和括号内的内容之间有空格。

二、常见陷阱

务必确保 [ 之后和 ] 之前有一个空格,否则您会遇到语法错误。
正确的写法:

if [ -n "$str" ];   # 正确
if [ -n "$str"];    # 错误 (空格缺失)

三、Option 拓展

文件判断:

-e file exists
-f file is a regular file (not a directory or device file)
-s file is not zero size
-d file is a directory
-b file is a block device
-c file is a character device
-p file is a pipe
-L file is a symbolic link
-S file is a socket
-t file (descriptor) is associated with a terminal device
-r file has read permission (for the user running the test)
-w file has write permission (for the user running the test)
-x file has execute permission (for the user running the test)

Ref

END.

标签:shell,file,permission,device,判断,str,test
From: https://www.cnblogs.com/eddyz/p/18685580

相关文章

  • Windows PowerShell 终端配置
    如何修改WindowsPowerShell的提示符WindowsPowerShell支持配置文件,可以创建配置文件,通过配置文件来修改配置文件路径打开一个WindowsPowershell执行如下命令,查看文件路径$PROFILE|Select-Object*根据结果输出,可以查看CurrentUserAllHosts的配置路径是什么,该变量......
  • 写一个方法判断大括号{}是否闭合
    在前端开发中,我们可以使用JavaScript来编写一个函数,用于判断字符串中的大括号{}是否闭合。以下是一个简单的实现方法:functionisBracketsClosed(str){letopenBracketCount=0;letcloseBracketCount=0;for(leti=0;i<str.length;i++){if......
  • 条件判断与循环
    条件判断与循环​​有符号的数跟无符号的数比大小的话,会把有符号的数也转化为无符号的数,这个时候的结果可能就会有偏差算法:可以整一个数来记录这个步骤怎么样了(eg:num++)(用于记录满足几个条件)(也就是计数器作用)‍eg:%4d在printf和scanf中的区分:在printf中:4表示如果......
  • java业务逻辑判断
       在平时的业务开发中,空指针出现的频率是比较高的bug,在出现空指针的时候,很多小伙伴都是习惯性地加!=null的判断,这个bug就能解决。当代码中频繁出现!=null的判断时,我们就会很头疼,能不能高效、优雅地做这个判断?答案当然是可以的。1.在做!=null的判断时,请停顿一下,......
  • js条件判断的类python海象写法
    判断里面赋值就OK啦varss="higooh"constreg=/\w{2}/gconstii=ss.matchAll(reg)while(_=ii.next()){if(_.done)breakconsole.log(_.value,_.done)ss=ss.replace(_.value[0],"xx")}//console.log(_)console.log(......
  • Windows Terminal/Powershell 设置自动补全, 智能提示 【类似于mac的iterm2功能】
    WindowsTerminal/Powershell设置自动补全,智能提示 安装:´PSReadLine´version2.1.0 #安装:´PSReadLine´version2.1.0Install-ModulePSReadLine-RequiredVersion2.1.0#初始化:Import-ModulePSReadLineSet-PSReadLineOption-PredictionSourceHistory ......
  • 我们开发了一个强大的 shell 脚本用于收集系统内存信息
    在Linux系统管理中,监控内存使用情况至关重要。我们开发了一个强大的shell脚本用于收集系统内存信息。该脚本以/bin/bash为解释器,首先创建/var/log/meminfo_collector.log日志文件,若创建失败则记录错误并终止,以方便后续追踪调试。接着根据当前日期在/root/kylin_s......
  • finalshell远程连接Centos虚拟机配置固定ip地址
    为虚拟机Centos的远程连接软件Finalshell或者xshell等软件配置固定ip地址提示:然后全点确定,就好了,这里就不演示了输入指令vim/etc/sysconfig/network-scripts/ifcfg-ens33BOOTPROTO=static#将ip设置为静态IPADDR="192.168.142.130"#静态ip地址,这个130是在0-254......
  • 机器视觉在肺癌筛查中的应用:数据驱动的肺结节检测与良恶性判断
    导语:肺癌,作为全球癌症死亡的主要原因之一,其早期筛查对于提高患者生存率至关重要。随着大数据时代的到来,机器视觉技术在医疗影像分析中发挥着越来越重要的作用。本文将深入探讨机器视觉在肺癌筛查中的应用,特别是如何利用大量数据来提高肺结节检测和良恶性判断的准确性。一、肺......
  • 基于goland的WebShell检测设计于研究
    摘要随着互联网在我们生活中被广泛应用到社交、金融、行政以及办公等领域,网络安全的问题也越来越被重视。WebShell的本质是一种Web应用脚本程序,由于其可以通过HTTP协议的方式对服务器进行控制,故常被黑客用于植入到被入侵的系统中,严重威胁到主机的安全。本文针对现有的WebSh......