if [ str1 = str2 ]       当两个串有相同内容、长度时为真 
if [ str1 != str2 ]      当串str1和str2不等时为真 
if [ -n str1 ]       当串的长度大于0时为真(串非空) 
if [ -z str1 ]        当串的长度为0时为真(空串) 
if [ str1 ]         当串str1为非空时为真

shell 中利用 -n 来判定字符串非空。

错误用法:

ARGS=$*

if [ -n $ARGS  ]

then

print "with argument"

fi

print " without argument"

不管传不传参数,总会进入if里面。

原因:因为不加“”时该if语句等效于if [ -n ],shell 会把它当成if [ str1 ]来处理,-n自然不为空,所以为正。

正确用法:需要在$ARGS上加入双引号,即"$ARGS".

ARGS=$*

if [ -n "$ARGS"  ]

then

print "with argument"

fi

print " without argument"

转载于:https://www.cnblogs.com/dyh004/p/6347226.html

Linux shell if [ -n ] 正确使用方法相关推荐

  1. Linux shell逐行读取文件的方法

    Linux shell逐行读取文件的方法 来源:互联网  在linux中有很多方法逐行读取一个文件的方法,其中最常用的就是下面的脚本里的方法,而且是效率最高,使用最多的方法.为了给大家一个直观的感受, ...

  2. # Linux shell终端设置代理服务器的方法

    Linux shell终端设置代理服务器的方法 文章目录 Linux shell终端设置代理服务器的方法 1 变量列表 2 设置方法 2.1 设置代理 2.2 测试代理 3 软件专用代理 3.1 yu ...

  3. linux批量重命名脚本,Mac / Linux Shell 批量重命名的方法总览

    Linux Shell 批量重命名的方法总览 0.用类似 GPRename 这样的图形软件进行批量重命名 1.删除所有的 .bak 后缀: rename 's/\.bak$//' *.bak 2.把 ...

  4. linux shell操作mysql,Linux shell操作mysql数据库的方法

    摘要 腾兴网为您分享:Linux shell操作mysql数据库的方法,鱼乐贝贝,宜信,嘻嘻动漫,西餐菜谱等软件知识,以及包装效果图,德州人社,evasi0n.com,ios迅雷,民革e家,动态表情, ...

  5. Linux shell脚本输出日志的方法和案例

    Linux shell脚本输出日志 #### log_correct函数打印正确的输出到日志文件 function log_correct () {DATE=`date "+%Y-%m-%d ...

  6. linux shell 三种自动交互 方法

    方法一 自动交互最关键的就是交互信息的自动输入,首先联想到文件重定向,在shell编程中有这样一种用法(参考LINUX与UNIX SHELL编程指南 chapt 5.7):"command ...

  7. linux shell的输出效果修改方法(界面颜色)

    文本终端的颜色可以使用"ANSI非常规字符序列"来生成.举例:  echo -e "\033[44;37;5m ME \033[0m COOL"  以上命令设置 ...

  8. Linux shell逐行读取文件的方法-比较

    From: http://www.embeddedlinux.org.cn/html/jishuzixun/201211/19-2387.html 在linux中有很多方法逐行读取一个文件的方法,其中 ...

  9. linux shell读取文件,Linux shell逐行读取文件的方法

    方法1:while循环中执行效率最高,最常用的方法. function while_read_LINE_bottm(){ While read LINE do echo $LINE done } 注释 ...

最新文章

  1. 搜索和其他机器学习问题有什么不同?
  2. linux下 DNS配置过程『罗斌原创』
  3. error: No curses/termcap library found的解决办法
  4. 学习Python必会内容:print函数、赋值与代码块
  5. iPhone 13有搞头,经典功能或将回归!
  6. 怎么把文件导入云服务器,怎么把文件放到云服务器里
  7. Kubernetes v1.14.0 之 kube_scheduler 部署
  8. PyCharm New environment和Existing environment
  9. html横向导航二级菜单代码,横向二级导航菜单
  10. 天善智能8月18日上海线下沙龙分享主题— 金融领域的客户洞察与标签体系构建...
  11. 华为工程师面试题库—通信类
  12. 论文阅读: Spatial transformer networks
  13. excel如何快速自动让空白单元格填充上一行内容
  14. 其他-IMU与AHRS区别
  15. 【SAP PO】SAP PO 接口日志查询(Monitoring)
  16. 车载DSP音频功放频率响应曲线2.5到20khz增益降太多是什么原因?
  17. 软考之计算机系统基础知识
  18. 47 Three.js使用THREE.ParametricGeometry生成平面图形、波浪图形、和克莱因瓶
  19. Vagrant 配置/使用手册
  20. 数据架构师是什么?来看这本书中的介绍

热门文章

  1. 学习笔记Flink(二)—— Flink数据流模型、时间窗口和核心概念
  2. 学习笔记Hive(七)—— 自定义函数
  3. python测试运行快捷键_Python基于unittest实现测试用例执行
  4. 安卓屏幕适配方案(根据今日头条方案,升级版)
  5. JavaScript中foreach()用法及使用的坑
  6. 【TypeScript】通过node-cmd使用代码,执行cmd命令行
  7. linux信号使用,linux信号使用注意事项
  8. 【C++】20. const char *str[]、指针的字节长度等 分析
  9. OpenCV关于hog特征向量的个数
  10. JavaScript之引用类型