<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=If_else%E4%BB%A5%E5%8F%8A%E5%A4%A7%E4%BA%8E%E3%80%81%E5%B0%8F%E4%BA%8E%E3%80%81%E7%AD%89%E4%BA%8E%E9%80%BB%E8%BE%91%E8%A1%A8%E8%BE%BE%E5%BC%8F</id>
	<title>If else以及大于、小于、等于逻辑表达式 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=If_else%E4%BB%A5%E5%8F%8A%E5%A4%A7%E4%BA%8E%E3%80%81%E5%B0%8F%E4%BA%8E%E3%80%81%E7%AD%89%E4%BA%8E%E9%80%BB%E8%BE%91%E8%A1%A8%E8%BE%BE%E5%BC%8F"/>
	<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=If_else%E4%BB%A5%E5%8F%8A%E5%A4%A7%E4%BA%8E%E3%80%81%E5%B0%8F%E4%BA%8E%E3%80%81%E7%AD%89%E4%BA%8E%E9%80%BB%E8%BE%91%E8%A1%A8%E8%BE%BE%E5%BC%8F&amp;action=history"/>
	<updated>2026-04-20T15:07:00Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.linuxsa.org/index.php?title=If_else%E4%BB%A5%E5%8F%8A%E5%A4%A7%E4%BA%8E%E3%80%81%E5%B0%8F%E4%BA%8E%E3%80%81%E7%AD%89%E4%BA%8E%E9%80%BB%E8%BE%91%E8%A1%A8%E8%BE%BE%E5%BC%8F&amp;diff=476&amp;oldid=prev</id>
		<title>Evan：​导入1个版本</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=If_else%E4%BB%A5%E5%8F%8A%E5%A4%A7%E4%BA%8E%E3%80%81%E5%B0%8F%E4%BA%8E%E3%80%81%E7%AD%89%E4%BA%8E%E9%80%BB%E8%BE%91%E8%A1%A8%E8%BE%BE%E5%BC%8F&amp;diff=476&amp;oldid=prev"/>
		<updated>2019-10-14T13:48:52Z</updated>

		<summary type="html">&lt;p&gt;导入1个版本&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==比较容易混的知识点==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
shell 字符串比较：&lt;br /&gt;
=                          等于           if [ &amp;quot;$a&amp;quot; = &amp;quot;$b&amp;quot; ]&lt;br /&gt;
==                        与=等价&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==条件测试 []==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
用&amp;quot;[]&amp;quot;来表示条件测试。注意这里的空格很重要。要确保方括号的空格。 &lt;br /&gt;
if ....; then &lt;br /&gt;
　 .... &lt;br /&gt;
elif ....; then &lt;br /&gt;
　 .... &lt;br /&gt;
else &lt;br /&gt;
　 .... &lt;br /&gt;
fi&lt;br /&gt;
[ -f &amp;quot;somefile&amp;quot; ] ：判断是否是一个文件 &lt;br /&gt;
[ -x &amp;quot;/bin/ls&amp;quot; ] ：判断/bin/ls是否存在并有可执行权限 &lt;br /&gt;
[ -n &amp;quot;$var&amp;quot; ] ：判断$var变量是否有值 &lt;br /&gt;
[ &amp;quot;$a&amp;quot; = &amp;quot;$b&amp;quot; ] ：判断$a和$b是否相等&lt;br /&gt;
    -r file　　　　　用户可读为真 &lt;br /&gt;
　　-w file　　　　　用户可写为真 &lt;br /&gt;
　　-x file　　　　　用户可执行为真 &lt;br /&gt;
　　-f file　　　　　文件为正规文件为真 &lt;br /&gt;
　　-d file　　　　　文件为目录为真 &lt;br /&gt;
　　-c file　　　　　文件为字符特殊文件为真 &lt;br /&gt;
　　-b file　　　　　文件为块特殊文件为真 &lt;br /&gt;
　　-s file　　　　　文件大小非0时为真 &lt;br /&gt;
　　-t file　　　　　当文件描述符(默认为1)指定的设备为终端时为真  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 基本的if条件命令选项 ==&lt;br /&gt;
有：  shell脚本编程支持此类运算，包括比较运算、判断文件是否存在等。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-eq —比较两个参数是否相等（例如，if [ 2 –eq 5 ]）&lt;br /&gt;
-ne —比较两个参数是否不相等 &lt;br /&gt;
-lt —参数1是否小于参数2 &lt;br /&gt;
-le —参数1是否小于等于参数2 &lt;br /&gt;
-gt —参数1是否大于参数2 &lt;br /&gt;
-ge —参数1是否大于等于参数2 &lt;br /&gt;
-f — 检查某文件是否存在（例如，if [ -f &amp;quot;filename&amp;quot; ]） &lt;br /&gt;
-d — 检查目录是否存在 &lt;br /&gt;
几乎所有的判断都可以用这些比较运算符实现。脚本中常用-f命令选项在执行某一文件之前检查它是否存在。&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==判断文件是否存在 ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh &lt;br /&gt;
YACCESS=`date -d yesterday +%Y%m%d` &lt;br /&gt;
FILE=&amp;quot;access_$YACCESS.log.tgz&amp;quot; &lt;br /&gt;
cd /data/nginx/logs&lt;br /&gt;
if [ -f &amp;quot;$FILE&amp;quot; ];then &lt;br /&gt;
echo &amp;quot;OK&amp;quot; &lt;br /&gt;
else &lt;br /&gt;
echo &amp;quot;error $FILE&amp;quot; &amp;gt; error.log &lt;br /&gt;
mail -s &amp;quot;$FILE backup fail&amp;quot; xxxx@yyyy.com &amp;lt;error.log &lt;br /&gt;
fi&lt;br /&gt;
###############&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# &lt;br /&gt;
DIR=/data/img_cache&lt;br /&gt;
DAY=`date +&amp;quot;%Y-%m-%d %H:%M&amp;quot;`&lt;br /&gt;
NUM=`ls $DIR |wc -l`&lt;br /&gt;
DIRNAME=`ls $DIR| grep leveldb | head -n 1 | awk &amp;#039;{print $NF}&amp;#039;`&lt;br /&gt;
if [[ $NUM -gt 3 ]];then&lt;br /&gt;
    rm -rf $DIR/$DIRNAME&lt;br /&gt;
    echo &amp;quot;---------$DAY----($DIR)-----------------------&amp;quot; &amp;gt;&amp;gt; /tmp/img_cache.log&lt;br /&gt;
    echo &amp;quot;$DIRNAME Deleted successful&amp;quot; &amp;gt;&amp;gt; /tmp/img_cache.log&lt;br /&gt;
fi&lt;br /&gt;
补充：文件测试操作：&lt;br /&gt;
返回true，如果：&lt;br /&gt;
-e                          文件存在&lt;br /&gt;
-a                          文件存在（已被弃用）&lt;br /&gt;
-f                           被测文件是一个regular文件（正常文件，非目录或设备）&lt;br /&gt;
-s                          文件长度不为0&lt;br /&gt;
-d                          被测对象是目录&lt;br /&gt;
-b                          被测对象是块设备&lt;br /&gt;
-c                          被测对象是字符设备&lt;br /&gt;
-p                          被测对象是管道&lt;br /&gt;
-h                          被测文件是符号连接&lt;br /&gt;
-L                          被测文件是符号连接&lt;br /&gt;
-S(大写)                 被测文件是一个socket&lt;br /&gt;
-t                          关联到一个终端设备的文件描述符。用来检测脚本的stdin[-t0]或[-t1]是一个终端&lt;br /&gt;
-r                          文件具有读权限，针对运行脚本的用户&lt;br /&gt;
-w                         文件具有写权限，针对运行脚本的用户&lt;br /&gt;
-x                          文件具有执行权限，针对运行脚本的用户&lt;br /&gt;
-u                          set-user-id(suid)标志到文件，即普通用户可以使用的root权限文件，通过chmod +s file实现&lt;br /&gt;
-k                          设置粘贴位&lt;br /&gt;
-O                         运行脚本的用户是文件的所有者&lt;br /&gt;
-G                         文件的group-id和运行脚本的用户相同&lt;br /&gt;
-N                         从文件最后被阅读到现在，是否被修改&lt;br /&gt;
f1 -nt f2                文件f1是否比f2新&lt;br /&gt;
f1 -ot f2                文件f1是否比f2旧&lt;br /&gt;
f1 -ef f2                文件f1和f2是否硬连接到同一个文件&lt;br /&gt;
二元比较操作符，比较变量或比较数字&lt;br /&gt;
整数比较：&lt;br /&gt;
-eq                       等于            if [ &amp;quot;$a&amp;quot; -eq &amp;quot;$b&amp;quot; ]&lt;br /&gt;
-ne                       不等于         if [ &amp;quot;$a&amp;quot; -ne &amp;quot;$b&amp;quot; ]&lt;br /&gt;
-gt                        大于            if [ &amp;quot;$a&amp;quot; -gt &amp;quot;$b&amp;quot; ]&lt;br /&gt;
-ge                       大于等于      if [ &amp;quot;$a&amp;quot; -ge &amp;quot;$b&amp;quot; ]&lt;br /&gt;
-lt                         小于            if [ &amp;quot;$a&amp;quot; -lt &amp;quot;$b&amp;quot; ]&lt;br /&gt;
-le                        小于等于      if [ &amp;quot;$a&amp;quot; -le &amp;quot;$b&amp;quot; ]&lt;br /&gt;
&amp;lt;                          小于（需要双括号）       (( &amp;quot;$a&amp;quot; &amp;lt; &amp;quot;$b&amp;quot; ))&lt;br /&gt;
&amp;lt;=                        小于等于(...)                (( &amp;quot;$a&amp;quot; &amp;lt;= &amp;quot;$b&amp;quot; ))&lt;br /&gt;
&amp;gt;                          大于(...)                      (( &amp;quot;$a&amp;quot; &amp;gt; &amp;quot;$b&amp;quot; ))&lt;br /&gt;
&amp;gt;=                        大于等于(...)                (( &amp;quot;$a&amp;quot; &amp;gt;= &amp;quot;$b&amp;quot; ))&lt;br /&gt;
字符串比较：&lt;br /&gt;
=                          等于           if [ &amp;quot;$a&amp;quot; = &amp;quot;$b&amp;quot; ]&lt;br /&gt;
==                        与=等价&lt;br /&gt;
!=                         不等于        if [ &amp;quot;$a&amp;quot; = &amp;quot;$b&amp;quot; ]&lt;br /&gt;
&amp;lt;                          小于，在ASCII字母中的顺序：&lt;br /&gt;
                            if [[ &amp;quot;$a&amp;quot; &amp;lt; &amp;quot;$b&amp;quot; ]]&lt;br /&gt;
                            if [ &amp;quot;$a&amp;quot; \&amp;lt; &amp;quot;$b&amp;quot; ]         #需要对&amp;lt;进行转义&lt;br /&gt;
&amp;gt;                          大于&lt;br /&gt;
-z                         字符串为null，即长度为0&lt;br /&gt;
-n                         字符串不为null，即长度不为0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://lxsym.blog.51cto.com/1364623/866331&lt;br /&gt;
[[category:shell]]&lt;/div&gt;</summary>
		<author><name>Evan</name></author>
	</entry>
</feed>