<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Shell Basic (基础) &#8211; Eternal Center</title>
	<atom:link href="https://eternalcenter-may-1-2022.github.io/category/languages/shell/shell-basic/feed/" rel="self" type="application/rss+xml" />
	<link>https://eternalcenter-may-1-2022.github.io/</link>
	<description></description>
	<lastBuildDate>Wed, 27 Apr 2022 09:04:34 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>[命令] Linux 命令 eval （执行变量里的命令或实现指针）</title>
		<link>https://eternalcenter-may-1-2022.github.io/eval/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Wed, 13 Apr 2022 14:19:09 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Operation (系统操作)]]></category>
		<category><![CDATA[System Operation & System Setting & System Software (系统操作 & 系统设置 & 系统软件)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=23101</guid>

					<description><![CDATA[内容目录： 内容一：eval 命令的作用 内容二：eval 直接执行命令的案例2.1 设置变量2.2 显示变量里内容 内容三：eval 将变量转换成命令后执行的案例3.1 将命令设置成变量3.2 显示变量里的命令3.3 执行变量里的命令 内容四：eval 显示脚本里最后 1 个位置变量的内容4.1 创建显示最后 1 个位置变量的脚本4.2 带位置变量执行脚本 内容五：eval 实现指针5.1 设置变量5.2 设置指针5.3 显示指针指向的变量5.4 显示指针最终指向的内容 具体的内容： 内容一：eval 命令的作用 对将要执行的命令进行 2 次扫描，第 1 次扫描时把扫描的内容替换成命令，第 2 次扫描时执行扫描到的命令 内容二：eval 直接执行命令的案例2.1 设置变量 （补充：这里以将内容 eternalcenter.com 赋值给变量 url 为例） 2.2 显示变量里内容 或者： （补充：这里以显示变量 url 里的内容 eternalcenter.com 为例） 内容三：eval 将变量转换成命令后执行的案例3.1 将命令设置成变量 &#8230; <p class="link-more"><a href="https://eternalcenter-may-1-2022.github.io/eval/" class="more-link">Continue reading<span class="screen-reader-text"> "[命令] Linux 命令 eval （执行变量里的命令或实现指针）"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h2>内容目录：</h2>



<h4>内容一：eval 命令的作用</h4>



<h4>内容二：eval 直接执行命令的案例<br>2.1 设置变量<br>2.2 显示变量里内容</h4>



<h4>内容三：eval 将变量转换成命令后执行的案例<br>3.1 将命令设置成变量<br>3.2 显示变量里的命令<br>3.3 执行变量里的命令</h4>



<h4>内容四：eval 显示脚本里最后 1 个位置变量的内容<br>4.1 创建显示最后 1 个位置变量的脚本<br>4.2 带位置变量执行脚本</h4>



<h4>内容五：eval 实现指针<br>5.1 设置变量<br>5.2 设置指针<br>5.3 显示指针指向的变量<br>5.4 显示指针最终指向的内容</h4>



<h2>具体的内容：</h2>



<h4>内容一：eval 命令的作用</h4>



<p>对将要执行的命令进行 2 次扫描，第 1 次扫描时把扫描的内容替换成命令，第 2 次扫描时执行扫描到的命令</p>



<h4>内容二：eval 直接执行命令的案例<br>2.1 设置变量</h4>



<pre class="wp-block-code"><code># url=eternalcenter.com</code></pre>



<p>（补充：这里以将内容 eternalcenter.com 赋值给变量 url 为例）</p>



<h4>2.2 显示变量里内容</h4>



<pre class="wp-block-code"><code># echo $url
eternalcenter.com</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># eval echo $url
eternalcenter.com</code></pre>



<p>（补充：这里以显示变量 url 里的内容 eternalcenter.com 为例）</p>



<h4>内容三：eval 将变量转换成命令后执行的案例<br>3.1 将命令设置成变量</h4>



<pre class="wp-block-code"><code># command=pwd</code></pre>



<p>（补充：这里以将命令 pwd 赋值给变量 command 为例）</p>



<h4>3.2 显示变量里的命令</h4>



<pre class="wp-block-code"><code># echo $command
pwd</code></pre>



<p>（补充：这里以显示变量 command 里的 pwd 命令为例）</p>



<h4>3.3 执行变量里的命令</h4>



<pre class="wp-block-code"><code># eval $command
/root</code></pre>



<p>（补充：这里以执行变量 command 里的 pwd 命令为例）</p>



<h4>内容四：eval 显示脚本里最后 1 个位置变量的内容<br>4.1 创建显示最后 1 个位置变量的脚本</h4>



<pre class="wp-block-code"><code># vim test.sh</code></pre>



<p>创建以下内容：</p>



<pre class="wp-block-code"><code>#!/bin/bash
eval echo \$$#</code></pre>



<p>（补充：这里创建名为 test.sh 的脚本为例）</p>



<h4>4.2 带位置变量执行脚本</h4>



<pre class="wp-block-code"><code># . test.txt a b c d e
e</code></pre>



<p>（补充：这里执行名为 test.sh 的脚本并附带 a b c d e 5 个位置变量为例）</p>



<h4>内容五：eval 实现指针<br>5.1 设置变量</h4>



<pre class="wp-block-code"><code># url=eternalcenter.com</code></pre>



<p>（补充：这里以将内容 eternalcenter.com 赋值给变量 url 为例）</p>



<h4>5.2 设置指针</h4>



<pre class="wp-block-code"><code># pointer=url</code></pre>



<p>（补充：这里以让指针 pointer 指向 url 变量为例）</p>



<h4>5.3 显示指针指向的变量</h4>



<pre class="wp-block-code"><code># echo $pointer
url</code></pre>



<p>（补充：这里以显示指针 pointer 指向的变量 url 为例）</p>



<h4>5.4 显示指针最终指向的内容</h4>



<pre class="wp-block-code"><code># eval echo \$$pointer
eternalcenter.com</code></pre>



<p>（补充：这里以显示指针 pointer 指向的最终内容 eternalcenter.com 为例）</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[命令] Linux 变量替换</title>
		<link>https://eternalcenter-may-1-2022.github.io/variable-replacement/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 09 Jan 2022 10:53:51 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Operation (系统操作)]]></category>
		<category><![CDATA[System Operation & System Setting & System Software (系统操作 & 系统设置 & 系统软件)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=21157</guid>

					<description><![CDATA[内容目录： 案例一：当要替换的变量未定义或为空时则给予其一个默认值 案例二：当要替换的变量已定义且不为空时则给予其一个默认值 案例三：当要替换的变量已定义且不为空时则替换此变量的前一部分3.1 当要替换的变量已定义且不为空时则替换此变量的前一部分3.2 当要替换的变量已定义且不为空时则替换此变量的某一部分 案例四：当要替换的变量已定义且不为空时则替换此变量去除前一部分的值4.1 去除变量左数第一个某一个符号前面的所有值4.2 去除变量左数最后某一个符号前面的所有值4.3 去除前面一部分值 案例五：当要替换的变量已定义且不为空时则替换此变量去除后一部分的值5.1 去除变量右数第一个某一个符号前面的所有值5.2 去除变量右数最后某一个符号前面的所有值5.3 去除后面一部分值 案例六：当要替换的变量已定义且不为空时则替换此变量替换一部分后的值 具体的内容： 案例一：当要替换的变量未定义或为空时则给予其一个默认值 或者： （补充：这里以当变量 value 存在且为空时则变量 newvalue 的值为 eternalcenter 为例） 案例二：当要替换的变量已定义且不为空时则给予其一个默认值 （补充：这里以当变量 value 存在且不为空时则变量 newvalue 的值为 eternalcenter 为例） 案例三：当要替换的变量已定义且不为空时则替换此变量的前一部分3.1 当要替换的变量已定义且不为空时则替换此变量的前一部分 或者： （补充：这里以当变量 value 存在且不为空时则变量 newvalue 的值为变量 value 前 4 个字符为例） 3.2 当要替换的变量已定义且不为空时则替换此变量的某一部分 （补充：这里以当变量 value 存在且不为空时则变量 newvalue 的值为变量 value 从第 4 &#8230; <p class="link-more"><a href="https://eternalcenter-may-1-2022.github.io/variable-replacement/" class="more-link">Continue reading<span class="screen-reader-text"> "[命令] Linux 变量替换"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h2>内容目录：</h2>



<h4>案例一：当要替换的变量未定义或为空时则给予其一个默认值</h4>



<h4>案例二：当要替换的变量已定义且不为空时则给予其一个默认值</h4>



<h4>案例三：当要替换的变量已定义且不为空时则替换此变量的前一部分<br>3.1 当要替换的变量已定义且不为空时则替换此变量的前一部分<br>3.2 当要替换的变量已定义且不为空时则替换此变量的某一部分</h4>



<h4>案例四：当要替换的变量已定义且不为空时则替换此变量去除前一部分的值<br>4.1 去除变量左数第一个某一个符号前面的所有值<br>4.2 去除变量左数最后某一个符号前面的所有值<br>4.3 去除前面一部分值</h4>



<h4>案例五：当要替换的变量已定义且不为空时则替换此变量去除后一部分的值<br>5.1 去除变量右数第一个某一个符号前面的所有值<br>5.2 去除变量右数最后某一个符号前面的所有值<br>5.3 去除后面一部分值</h4>



<h4>案例六：当要替换的变量已定义且不为空时则替换此变量替换一部分后的值</h4>



<h2>具体的内容：</h2>



<h4>案例一：当要替换的变量未定义或为空时则给予其一个默认值</h4>



<pre class="wp-block-code"><code># value=
# newvalue=${value:-eternalcenter}
# echo $newvalue
eternalcenter</code></pre>



<pre class="wp-block-code"><code># value=mingyuzhu
# newvalue=${value:-eternalcenter}
# echo $newvalue
mingyuzhu</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># value=
# newvalue=${value:=eternalcenter}
# echo $newvalue
eternalcenter</code></pre>



<pre class="wp-block-code"><code># value=mingyuzhu
# newvalue=${value:=eternalcenter}
# echo $newvalue
mingyuzhu</code></pre>



<p>（补充：这里以当变量 value 存在且为空时则变量 newvalue 的值为 eternalcenter 为例）</p>



<h4>案例二：当要替换的变量已定义且不为空时则给予其一个默认值</h4>



<pre class="wp-block-code"><code># value=
# newvalue=${value:+eternalcenter}
# echo $newvalue</code></pre>



<pre class="wp-block-code"><code># value=mingyuzhu
# newvalue=${value:+eternalcenter}
# echo $newvalue
eternalcenter</code></pre>



<p>（补充：这里以当变量 value 存在且不为空时则变量 newvalue 的值为 eternalcenter 为例）</p>



<h4>案例三：当要替换的变量已定义且不为空时则替换此变量的前一部分<br>3.1 当要替换的变量已定义且不为空时则替换此变量的前一部分</h4>



<pre class="wp-block-code"><code># value=mingyuzhu
# newvalue=${value:offset:4}
# echo $newvalue
ming</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># value=mingyuzhu
# newvalue=${value:0:4}
# echo $newvalue
ming</code></pre>



<p>（补充：这里以当变量 value 存在且不为空时则变量 newvalue 的值为变量 value 前 4 个字符为例）</p>



<h4>3.2 当要替换的变量已定义且不为空时则替换此变量的某一部分</h4>



<pre class="wp-block-code"><code># value=mingyuzhu
# newvalue=${value:4:2}
# echo $newvalue
yu</code></pre>



<p>（补充：这里以当变量 value 存在且不为空时则变量 newvalue 的值为变量 value 从第 4 个字符开始的 2 个字符为例）</p>



<h4>案例四：当要替换的变量已定义且不为空时则替换此变量去除前一部分的值<br>4.1 去除变量左数第一个某一个符号前面的所有值</h4>



<pre class="wp-block-code"><code># value=ming:yu:zhu
# newvalue=${value#*:}
# echo $newvalue
yu:zhu</code></pre>



<p>（补充：这里以去除变量 value 左数第一个冒号 “:” 前面的所有值并赋予给变量 newvalue 为例）</p>



<h4>4.2 去除变量左数最后某一个符号前面的所有值</h4>



<pre class="wp-block-code"><code># value=ming:yu:zhu
# newvalue=${value##*:}
# echo $newvalue
zhu</code></pre>



<p>（补充：这里以去除变量 value 左数最后一个冒号 “:” 前面的所有值并赋予给变量 newvalue 为例）</p>



<h4>4.3 去除前面一部分值</h4>



<pre class="wp-block-code"><code># value=mingyuzhu
# novalue=ming
# newvalue=${value##$novalue}
# echo $newvalue
yuzhu</code></pre>



<p>（补充：这里以去除变量 value 前面的 ming 值并赋予给变量 newvalue 为例）</p>



<h4>案例五：当要替换的变量已定义且不为空时则替换此变量去除后一部分的值<br>5.1 去除变量右数第一个某一个符号前面的所有值</h4>



<pre class="wp-block-code"><code># value=ming:yu:zhu
# newvalue=${value%:*}
# echo $newvalue
ming:yu</code></pre>



<p>（补充：这里以去除变量 value 右数第一个冒号 “:” 前面的所有值并赋予给变量 newvalue 为例）</p>



<h4>5.2 去除变量右数最后某一个符号前面的所有值</h4>



<pre class="wp-block-code"><code># value=ming:yu:zhu
# newvalue=${value%%:*}
# echo $newvalue
ming</code></pre>



<p>（补充：这里以去除变量 value 右数最后一个冒号 “:” 前面的所有并赋予给变量 newvalue 值为例）</p>



<h4>5.3 去除后面一部分值</h4>



<pre class="wp-block-code"><code># value=mingyuzhu
# novalue=ming
# newvalue=${value%%$novalue}
# echo $newvalue
mingyu</code></pre>



<p>（补充：这里以去除变量 value 后面的 zhu 值并赋予给变量 newvalue 为例）</p>



<h4>案例六：当要替换的变量已定义且不为空时则替换此变量替换一部分后的值</h4>



<pre class="wp-block-code"><code># value=mingyuzhu
# noneedvalue=yu
# needvalue=zhu
# newvalue=${value/$noneedvalue/$needvalue}
# echo $newvalue
mingzhuzhu</code></pre>



<p>（补充：这里以将变量 value 中的 yu 替换成 zhu 并赋予给变量 newvalue 为例）</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[命令] Linux 命令 (()) （比较数值文件和字符串）</title>
		<link>https://eternalcenter-may-1-2022.github.io/double-parenthese/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sat, 08 Jan 2022 12:26:42 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Operation (系统操作)]]></category>
		<category><![CDATA[System Operation & System Setting & System Software (系统操作 & 系统设置 & 系统软件)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=21153</guid>

					<description><![CDATA[内容一：(()) 比较符号1.1 (()) 数值比较符号 1) ==，若两个数值存在且相等，则结果为真2) !=，若两个数值存在且不相等，则结果为真3) &#62;，若两个数值存在且前一个数值大于后一个数值，则结果为真4) &#60;，若两个数值存在且前一个数值小于后一个数值，则结果为真 5) &#62;=，若两个数值存在且前一个数值大于或等于后一个数值，则结果为真6) &#60;=，若两个数值存在且前一个数值小于或等于后一个数值，则结果为真 1.2 (()) 字符串比较符号 ==，若两个字符串存在且一样，则结果为真 内容二：(()) 的数值比较案例2.1 案例一：对整数进行比较 （补充：这里以测试数字 0 是否不等于数字 1 为例） 2.2 案例二：对字符串进行比较 （补充：这里以测试字符串 a 是否等于字符串 a 为例）]]></description>
										<content:encoded><![CDATA[
<h4>内容一：(()) 比较符号<br>1.1 (()) 数值比较符号</h4>



<p>1) ==，若两个数值存在且相等，则结果为真<br>2) !=，若两个数值存在且不相等，则结果为真<br>3) &gt;，若两个数值存在且前一个数值大于后一个数值，则结果为真<br>4) &lt;，若两个数值存在且前一个数值小于后一个数值，则结果为真 5) &gt;=，若两个数值存在且前一个数值大于或等于后一个数值，则结果为真<br>6) &lt;=，若两个数值存在且前一个数值小于或等于后一个数值，则结果为真</p>



<h4>1.2 (()) 字符串比较符号</h4>



<p>==，若两个字符串存在且一样，则结果为真</p>



<h4>内容二：(()) 的数值比较案例<br>2.1 案例一：对整数进行比较</h4>



<pre class="wp-block-code"><code># (( 0 -ne 1 ))
# echo $?
0</code></pre>



<p>（补充：这里以测试数字 0 是否不等于数字 1 为例）</p>



<h4>2.2 案例二：对字符串进行比较</h4>



<pre class="wp-block-code"><code># (( a == a ))
# echo $?
0</code></pre>



<p>（补充：这里以测试字符串 a 是否等于字符串 a 为例）</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[命令] Linux 命令 [[]] （比较数值、文件、目录、链接、块、特殊文件、字符串）</title>
		<link>https://eternalcenter-may-1-2022.github.io/double-square-bracket/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Mon, 03 Jan 2022 14:42:23 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Operation (系统操作)]]></category>
		<category><![CDATA[System Operation & System Setting & System Software (系统操作 & 系统设置 & 系统软件)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=21112</guid>

					<description><![CDATA[内容一：[[]] 比较符号1.1 [[]] 数值比较符号 1) -eq 或者 ==，若两个数值存在且相等，则结果为真2) -ne 或者 !=，若两个数值存在且不相等，则结果为真3) -gt 或者 &#62;，若两个数值存在且前一个数值大于后一个数值，则结果为真4) -lt 或者 &#60;，若两个数值存在且前一个数值小于后一个数值，则结果为真5) -ge 或者 &#62;=，若两个数值存在且前一个数值大于或等于后一个数值，则结果为真6) -le 或者 &#60;=，若两个数值存在且前一个数值小于或等于后一个数值，则结果为真 1.2 [[]] 字符串比较符号 1) -z，如果字符串为空值，则结果为真2) -n，如果字符串不为空值，则结果为真3) == 或者 =，若两个字符串存在且一样，则结果为真4) !=，若两个字符串存在且不一样，则结果为真5) &#62;，若两个字符串存在且前一个字符串大于后一个字符串（按数字顺序或字母数顺序进行比较，越靠后的值越大），则结果为真6) &#60;，若两个字符串存在且前一个字符串小于后一个字符串（按数字顺序或字母数顺序进行比较，越靠后的值越大），则结果为真 1.3 [[]] 文件、目录、链接、块、特殊文件比较符号 1) -e，若文件或目录或链接存在，则结果为真2) -d，若目录存在，则结果为真3) -f，若文件存在，则结果为真4) -L，若链接存在，则结果为真5) -b，若块文件存在，则结果为真6) -c，若字符型特殊文件存在，则结果为真7) -s，若文件存在且里面有内容，则结果为真8) -r，若文件且可读，则结果为真9) -w，若文件且可写，则结果为真10) -x，若文件且可执行，则结果为真11) -nt，若两个文件存在且前一个文件比后一个文件新，则结果为真12) -ot，若两个文件存在且前一个文件比后一个文件新，则结果为真 1.4 [[]] 逻辑符号 1) &#8230; <p class="link-more"><a href="https://eternalcenter-may-1-2022.github.io/double-square-bracket/" class="more-link">Continue reading<span class="screen-reader-text"> "[命令] Linux 命令 [[]] （比较数值、文件、目录、链接、块、特殊文件、字符串）"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h4>内容一：[[]] 比较符号<br>1.1 [[]] 数值比较符号</h4>



<p>1) -eq 或者 ==，若两个数值存在且相等，则结果为真<br>2) -ne 或者 !=，若两个数值存在且不相等，则结果为真<br>3) -gt 或者 &gt;，若两个数值存在且前一个数值大于后一个数值，则结果为真<br>4) -lt 或者 &lt;，若两个数值存在且前一个数值小于后一个数值，则结果为真<br>5) -ge 或者 &gt;=，若两个数值存在且前一个数值大于或等于后一个数值，则结果为真<br>6) -le 或者 &lt;=，若两个数值存在且前一个数值小于或等于后一个数值，则结果为真</p>



<h4>1.2 [[]] 字符串比较符号</h4>



<p>1) -z，如果字符串为空值，则结果为真<br>2) -n，如果字符串不为空值，则结果为真<br>3) == 或者 =，若两个字符串存在且一样，则结果为真<br>4) !=，若两个字符串存在且不一样，则结果为真<br>5) &gt;，若两个字符串存在且前一个字符串大于后一个字符串（按数字顺序或字母数顺序进行比较，越靠后的值越大），则结果为真<br>6) &lt;，若两个字符串存在且前一个字符串小于后一个字符串（按数字顺序或字母数顺序进行比较，越靠后的值越大），则结果为真</p>



<h4>1.3 [[]] 文件、目录、链接、块、特殊文件比较符号</h4>



<p>1) -e，若文件或目录或链接存在，则结果为真<br>2) -d，若目录存在，则结果为真<br>3) -f，若文件存在，则结果为真<br>4) -L，若链接存在，则结果为真<br>5) -b，若块文件存在，则结果为真<br>6) -c，若字符型特殊文件存在，则结果为真<br>7) -s，若文件存在且里面有内容，则结果为真<br>8) -r，若文件且可读，则结果为真<br>9) -w，若文件且可写，则结果为真<br>10) -x，若文件且可执行，则结果为真<br>11) -nt，若两个文件存在且前一个文件比后一个文件新，则结果为真<br>12) -ot，若两个文件存在且前一个文件比后一个文件新，则结果为真</p>



<h4>1.4 [[]] 逻辑符号</h4>



<p>1) &amp;&amp;，和<br>2) ||，或<br>3) !，非</p>



<h4>1.5 [[]] 运算符号</h4>



<p>1) +，若两个数值存在，则相加<br>2) -，若两个数值存在，则相减<br>3) *，若两个数值存在，则相乘<br>4) /，若两个数值存在，则相除<br>5) %，若两个数值存在，则取余</p>



<h4>1.6 [[]] 其他符号</h4>



<p>1) =~，两个字符串或数值存在且后一个字符串或数值匹配正则表达式后一样，则结果为真<br>2) [0-9] 等所有 Linux 正则表达式<br>3) * 等所有 Linux 通配符</p>



<h4>内容二：[[]] 的数值比较案例<br>2.1 案例一：对整数进行比较</h4>



<pre class="wp-block-code"><code># &#91;&#91; 0 -ne 1 ]]
# echo $?
0</code></pre>



<p>（补充：这里以测试数字 0 是否不等于数字 1 为例）</p>



<h4>2.2 案例二：对字符串进行比较</h4>



<pre class="wp-block-code"><code># &#91;&#91; a == a ]]
# echo $?
0</code></pre>



<p>（补充：这里以测试字符串 a 是否等于字符串 a 为例）</p>



<h4>2.3 案例三：对文件进行比较</h4>



<pre class="wp-block-code"><code># &#91;&#91; -f test.txt ]]
# echo $?
0</code></pre>



<p>（补充：这里以测试文件 test.txt 是否存在为例）</p>



<h4>2.4 案例四：对变量进行比较</h4>



<pre class="wp-block-code"><code># a=1
# &#91;&#91; $a == 1 ]]
# echo $?
0</code></pre>



<p>（补充：这里以测试变量 a 是否等于数字 1 为例）</p>



<h4>2.5 案例五：对数值运算后进行比较</h4>



<pre class="wp-block-code"><code># a=2
# b=3
# c=5
# &#91;&#91; $a+$b -eq $c ]]
# echo $?
0</code></pre>



<p>（补充：这里以测试变量 a 加变量 b 是否等于变量 c 为例）</p>



<p>（注意： [[]] 数值运算后需要使用 -eq、-ne、-gt、-lt、-ge、-le 进行比较而不是使用 ==、!=、&gt;、&lt;、&gt;=、&lt;=）</p>



<h4>2.6 案例六：使用逻辑符号对多个变量进行比较</h4>



<pre class="wp-block-code"><code># a=eternalcenter
# b=eternalcenter
# c=eternalcentre
# &#91;&#91; $a == $b &amp;&amp; $b != $c ]]
# echo $?
# 0</code></pre>



<p>（补充：这里以测试变量 a 是否等于变量 b 且变量 b 是否不等于变量 c 为例）</p>



<h4>2.7 案例七：使用通配符对字符串进行比较</h4>



<pre class="wp-block-code"><code># &#91;&#91; eternalcenter = eternalcen??? ]]
# echo $?
# 0</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># &#91;&#91; eternalcenter = e*r ]]
# echo $?
# 0</code></pre>



<p>（补充：这里以测试字符串 eternalcenter 是否等于字符串加通配符 eternalcen??? 或字符串加通配符 e*r 为例）</p>



<h4>2.8 案例八：使用正则表达式对字符串进行比较</h4>



<pre class="wp-block-code"><code># &#91;&#91; 10 =~ &#91;0-9]{2} ]]
# echo $?
# 0</code></pre>



<p>（补充：这里以测试数字 10 是否是每位数是 0 到 9 的两位数为例）</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[命令] Linux 命令  set （设置 Shell 里的位置变量或者 Shell 的执行方式）</title>
		<link>https://eternalcenter-may-1-2022.github.io/set/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Wed, 10 Nov 2021 13:05:41 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Operation & System Setting & System Software (系统操作 & 系统设置 & 系统软件)]]></category>
		<category><![CDATA[System Setting (系统设置)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=18278</guid>

					<description><![CDATA[内容一：set 命令的格式1.1 设置 Shell 的位置变量的格式 1.2 设置 Shell 的执行方式 或者： 或者： （补充：+o 代表打开特殊属性，-o 代表结束特殊属性） 内容二： set 的常用参数 1) -a 将已修改的变量进行标记，为将其输出至环境变量做准备2) -b 让被中止的后台进程立刻显示退出状态代码3) -d 取消使用杂凑表记忆中使用过的指令4) -e 若退出状态代码不为 0 （正常退出）则立即退出，并显示错误原因5) -f 取消通配符6) -h 默认自动记录函数位置7) -k 让命令的参数为此命令的环境变量8) -l 默认自动记录 for 循环变量名9) -m 监视模式10) -n 测试模式（只读取不执行）11) -p 优先顺序模式12) -P 让文件或目录代替符号链接13) -t 让随后的命令执行后立即退出14) -u 使用未定义的变量时显示错误信息15) -v 显示输入值16) -H shell 使用感叹号 &#8230; <p class="link-more"><a href="https://eternalcenter-may-1-2022.github.io/set/" class="more-link">Continue reading<span class="screen-reader-text"> "[命令] Linux 命令  set （设置 Shell 里的位置变量或者 Shell 的执行方式）"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h4>内容一：set 命令的格式<br>1.1 设置 Shell 的位置变量的格式</h4>



<pre class="wp-block-code"><code># set &lt;Value of the first position variable&gt; &lt;Value of the second location variable&gt; ......</code></pre>



<h4>1.2 设置 Shell 的执行方式</h4>



<pre class="wp-block-code"><code># set &lt;parameter&gt;</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># set &lt;parameter&gt; +o</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># set &lt;parameter&gt; -o</code></pre>



<p>（补充：+o 代表打开特殊属性，-o 代表结束特殊属性）</p>



<h4>内容二： set 的常用参数</h4>



<p>1) -a 将已修改的变量进行标记，为将其输出至环境变量做准备<br>2) -b 让被中止的后台进程立刻显示退出状态代码<br>3) -d 取消使用杂凑表记忆中使用过的指令<br>4) -e 若退出状态代码不为 0 （正常退出）则立即退出，并显示错误原因<br>5) -f 取消通配符<br>6) -h 默认自动记录函数位置<br>7) -k 让命令的参数为此命令的环境变量<br>8) -l 默认自动记录 for 循环变量名<br>9) -m 监视模式<br>10) -n 测试模式（只读取不执行）<br>11) -p 优先顺序模式<br>12) -P 让文件或目录代替符号链接<br>13) -t 让随后的命令执行后立即退出<br>14) -u 使用未定义的变量时显示错误信息<br>15) -v 显示输入值<br>16) -H shell 使用感叹号 “!” + 号码的方式调用 history 命令中的历史命令<br>17) -x 命令指向前先显示此命令的参数或变量</p>



<p>（补充：将以上参数前面的 &#8211; 换成 + 则会变成相反的效果）</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[内容] Linux 数组</title>
		<link>https://eternalcenter-may-1-2022.github.io/array/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sat, 30 Oct 2021 14:20:29 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=18121</guid>

					<description><![CDATA[内容目录： 内容一：定义数组1.1 定义数组全部的值1.1.1 在命令行中定义数组的值1.1.2 在脚本中定义数组的值1.2 定义数组某个指定位置元素的值1.2.1 在命令行定义数组某个指定位置元素的值1.2.2 在脚本定义数组某个指定位置元素的值1.3 给数组追加新的元素 内容二：读取数组2.1 读取数组全部的值2.2 读取数组元素的个数2.3 读取数组最长单个元素的长度2.4 读取数组单个元素的值2.5 读取数组位置经过计算得出的元素的值2.6 读取数组位置经过计算得出的元素的值，并在计算过程中使用变量2.7 读取数组单个元素的值，并在前面加前缀 内容三：数组的使用案例3.1 创建使用数组的脚本3.2 执行使用数组的脚本 具体的内容： 内容一：定义数组1.1 定义数组全部的值1.1.1 在命令行中定义数组的值 或者： 1.1.2 在脚本中定义数组的值 或者： 1.2 定义数组某个指定位置元素的值1.2.1 在命令行定义数组某个指定位置元素的值 （补充：这里以定义数组第 1 个元素位置的值为例） 1.2.2 在脚本定义数组某个指定位置元素的值 （补充：这里以定义数组第 1 个元素位置的值为例） 1.3 给数组追加新的元素 或者： （补充：这里每个空格间隔 1 个新的元素，元素的位置依次递增） 内容二：读取数组2.1 读取数组全部的值 或者： 2.2 读取数组元素的个数 或者： 2.3 读取数组最长单个元素的长度 2.4 读取数组单个元素的值 &#8230; <p class="link-more"><a href="https://eternalcenter-may-1-2022.github.io/array/" class="more-link">Continue reading<span class="screen-reader-text"> "[内容] Linux 数组"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h2 id="内容目录">内容目录：</h2>



<h4>内容一：定义数组<br>1.1 定义数组全部的值<br>1.1.1 在命令行中定义数组的值<br>1.1.2 在脚本中定义数组的值<br>1.2 定义数组某个指定位置元素的值<br>1.2.1 在命令行定义数组某个指定位置元素的值<br>1.2.2 在脚本定义数组某个指定位置元素的值<br>1.3 给数组追加新的元素</h4>



<h4>内容二：读取数组<br>2.1 读取数组全部的值<br>2.2 读取数组元素的个数<br>2.3 读取数组最长单个元素的长度<br>2.4 读取数组单个元素的值<br>2.5 读取数组位置经过计算得出的元素的值<br>2.6 读取数组位置经过计算得出的元素的值，并在计算过程中使用变量<br>2.7 读取数组单个元素的值，并在前面加前缀</h4>



<h4 id="内容三-数组的使用案例3-1-创建使用数组的脚本3-2-执行使用数组的脚本">内容三：数组的使用案例<br>3.1 创建使用数组的脚本<br>3.2 执行使用数组的脚本</h4>



<h2 id="具体的内容">具体的内容：</h2>



<h4 id="内容一-定义数组1-1-定义数组全部的值1-1-1-在命令行中定义数组的值">内容一：定义数组<br>1.1 定义数组全部的值<br>1.1.1 在命令行中定义数组的值</h4>



<pre class="wp-block-code"><code># &lt;array_name&gt;=(&lt;value0&gt; &lt;value1&gt; &lt;value2&gt; &lt;value3&gt; &lt;value4&gt;)</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># &lt;array_name&gt;=(\
&lt;value0&gt;\
&lt;value1&gt;\
&lt;value2&gt;\
&lt;value3&gt;\
&lt;value4&gt;\
)</code></pre>



<h4 id="1-1-2-在脚本中定义数组的值">1.1.2 在脚本中定义数组的值</h4>



<pre class="wp-block-code"><code>&lt;array_name&gt;=(
&lt;value0&gt;
&lt;value1&gt;
&lt;value2&gt;
&lt;value3&gt;
&lt;value4&gt;
)</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code>&lt;array_name&gt;&#91;0]=&lt;value0&gt;
&lt;array_name&gt;&#91;1]=&lt;value1&gt;
&lt;array_name&gt;&#91;2]=&lt;value2&gt;
&lt;array_name&gt;&#91;3]=&lt;value3&gt;
&lt;array_name&gt;&#91;4]=&lt;value4&gt;</code></pre>



<h4 id="1-2-定义数组某个指定位置元素的值1-2-1-在命令行定义数组某个指定位置元素的值">1.2 定义数组某个指定位置元素的值<br>1.2.1 在命令行定义数组某个指定位置元素的值</h4>



<pre class="wp-block-code"><code># &lt;array_name&gt;&#91;0]=&lt;value0&gt;</code></pre>



<p>（补充：这里以定义数组第 1 个元素位置的值为例）</p>



<h4 id="1-2-2-在脚本定义数组某个指定位置元素的值">1.2.2 在脚本定义数组某个指定位置元素的值</h4>



<pre class="wp-block-code"><code>&lt;array_name&gt;&#91;0]=&lt;value0&gt;</code></pre>



<p>（补充：这里以定义数组第 1 个元素位置的值为例）</p>



<h4>1.3 给数组追加新的元素</h4>



<pre class="wp-block-code"><code># &lt;array_name&gt;+=(&lt;the value of the new element&gt; &lt;the value of the new element&gt; &lt;the value of the new element&gt; ......)</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># &lt;array_name&gt;+=('&lt;the value of the new element&gt;' '&lt;the value of the new element&gt;' '&lt;the value of the new element&gt;' ......)</code></pre>



<p>（补充：这里每个空格间隔 1 个新的元素，元素的位置依次递增）</p>



<h4 id="内容二-读取数组2-1-读取数组全部的值">内容二：读取数组<br>2.1 读取数组全部的值</h4>



<pre class="wp-block-code"><code># echo ${&lt;array_name&gt;&#91;*]}</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># echo ${&lt;array_name&gt;&#91;@]}</code></pre>



<h4 id="2-2-读取数组元素的个数">2.2 读取数组元素的个数</h4>



<pre class="wp-block-code"><code># echo ${#&lt;array_name&gt;&#91;*]}</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># echo ${#&lt;array_name&gt;&#91;@]}</code></pre>



<h4 id="2-3-读取数组最长单个元素的长度">2.3 读取数组最长单个元素的长度</h4>



<pre class="wp-block-code"><code># echo ${#&lt;array_name&gt;&#91;n]}</code></pre>



<h4 id="2-4-读取数组单个元素的值">2.4 读取数组单个元素的值</h4>



<pre class="wp-block-code"><code># echo ${&lt;array_name&gt;&#91;1]}</code></pre>



<p>（补充：这里以显示数组第 2 个元素的值为例）</p>



<h4>2.5 读取数组位置经过计算得出的元素的值</h4>



<pre class="wp-block-code"><code># echo ${command_array&#91;2 + 1]} </code></pre>



<p>（补充：这里以显示数组第 2 + 1 = 3 个，也就是第 3 个元素的值为例）</p>



<h4>2.6 读取数组位置经过计算得出的元素的值，并在计算过程中使用变量</h4>



<pre class="wp-block-code"><code># echo ${command_array&#91;(2 * $i) + 1]}</code></pre>



<p>（补充：这里以显示数组第 2 乘以变量 i 的值再加上 1 的位置的元素的值为例）</p>



<h4 id="2-5-读取数组单个元素的值-并在前面加前缀">2.7 读取数组单个元素的值，并在前面加前缀</h4>



<pre class="wp-block-code"><code># echo "First Index: ${&lt;array_name&gt;&#91;0]}"</code></pre>



<p>（补充：这里以显示数组第 1 个元素的值，并在前面加上 First Index: 前缀为例）</p>



<h4 id="内容三-数组的使用案例3-1-创建使用数组的脚本">内容三：数组的使用案例<br>3.1 创建使用数组的脚本</h4>



<pre class="wp-block-code"><code># vim test.sh</code></pre>



<p>创建以下内容：</p>



<pre class="wp-block-code"><code>#!/bin/bash
  
NAME&#91;0]='a1'
NAME&#91;1]='b2'
NAME&#91;2]='c3'
NAME&#91;3]='d4'
NAME&#91;4]='e5'

echo "first one: ${NAME&#91;0]}"
echo "${NAME&#91;*]}"</code></pre>



<p>（补充：这里以创建名为 test.sh 显示数组的第 1 个值和所有值，并在第 1 个值前面添加 first one 前缀的脚本为例）</p>



<h4 id="3-2-执行使用数组的脚本">3.2 执行使用数组的脚本</h4>



<pre class="wp-block-code"><code># . test.sh 
first one: a1
all: a1 b2 c3 d4 e5</code></pre>



<p>（补充：这里以执行名为 test.sh 的脚本，显示第 1 行是 first one: a1 第 2 行是 all: a1 b2 c3 d4 e5 的结果为例）</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[命令] Linux 命令 echo （显示字符串）</title>
		<link>https://eternalcenter-may-1-2022.github.io/echo/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Mon, 20 Sep 2021 02:26:02 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System File (系统文件)]]></category>
		<category><![CDATA[System Operation (系统操作)]]></category>
		<category><![CDATA[System Operation & System Setting & System Software (系统操作 & 系统设置 & 系统软件)]]></category>
		<category><![CDATA[System Storage & System Directory & System File (系统存储 & 系统目录 & 系统文件)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=17649</guid>

					<description><![CDATA[内容一：echo 的命令选项 1) -n 输出不换行2) -e 处理某些特殊字符\a 蜂鸣声报警\b 删除前面一个字符\c 在末尾不换行\e 输出 esc\f 换行，同时光标停在原处\n 换行\r 不换行，同时光标停在原处\t tab，水平方向\v tab，垂直方向\ 输出 \\Onnn 输出八进制 ASCII 字符\xHH 输出十六进制 ASCII 字符3) -E 不再转义 内容二：echo 的其他显示选项 1) \033[0m 将所有显示属性关闭2) \033[1m 高亮3) \033[4m 下划线4) \033[5m 闪烁5) \033[7m 反显6) \033[8m 消隐7) \033[37m — \33[0m 设置字体颜色，这里以将字体颜色设置为白色为例8) \033[40m — \33[0m 设置背景颜色，这里以将背景颜色设置为白色为例9) \033[A 将光标向上移 n 行10) \033[B &#8230; <p class="link-more"><a href="https://eternalcenter-may-1-2022.github.io/echo/" class="more-link">Continue reading<span class="screen-reader-text"> "[命令] Linux 命令 echo （显示字符串）"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h4>内容一：echo 的命令选项</h4>



<p>1) -n 输出不换行<br>2) -e 处理某些特殊字符<br>\a 蜂鸣声报警<br>\b 删除前面一个字符<br>\c 在末尾不换行<br>\e 输出 esc<br>\f 换行，同时光标停在原处<br>\n 换行<br>\r 不换行，同时光标停在原处<br>\t tab，水平方向<br>\v tab，垂直方向<br>\ 输出 \<br>\Onnn 输出八进制 ASCII 字符<br>\xHH 输出十六进制 ASCII 字符<br>3) -E 不再转义</p>



<h4>内容二：echo 的其他显示选项</h4>



<p>1) \033[0m 将所有显示属性关闭<br>2) \033[1m 高亮<br>3) \033[4m 下划线<br>4) \033[5m 闪烁<br>5) \033[7m 反显<br>6) \033[8m 消隐<br>7) \033[37m — \33[0m 设置字体颜色，这里以将字体颜色设置为白色为例<br>8) \033[40m — \33[0m 设置背景颜色，这里以将背景颜色设置为白色为例<br>9) \033[A 将光标向上移 n 行<br>10) \033[B 将光标向下移 n 行<br>11) \033[C 将光标向右移 n 行<br>12) \033[D 将光标向左移 n 行<br>13) \033[;H 将光标跳转到 x 和 y 位置<br>14) \033[2J 清屏<br>15) \033[K 将光标所在位置到行尾的所有位置全部清除<br>16) \033[s 将光标位置保存<br>17) \033[u 将光标位置恢复<br>18) \033[?25l 将光标隐藏<br>19) \033[?25h 将光标显示</p>



<h4>内容三：echo 显示不同颜色字体的案例</h4>



<pre class="wp-block-code"><code># echo -e "\033&#91;30m black characters \033&#91;0m" 
# echo -e "\033&#91;31m red characters \033&#91;0m"
# echo -e "\033&#91;32m green characters \033&#91;0m" 
# echo -e "\033&#91;33m yellow characters \033&#91;0m"
# echo -e "\033&#91;34m blue characters \033&#91;0m"
# echo -e "\033&#91;35m purple character \033&#91;0m"
# echo -e "\033&#91;36m sky blue character \033&#91;0m"
# echo -e "\033&#91;37m white character \033&#91;0m"</code></pre>



<h4>内容三：echo 显示不同颜色背景的案例</h4>



<pre class="wp-block-code"><code># echo -e "\033&#91;40;37m white characters on black background \033&#91;0m"
# echo -e "\033&#91;41;37m white characters on red background \033&#91;0m"
# echo -e "\033&#91;42;37m white characters on green background \033&#91;0m"
# echo -e "\033&#91;43;37m white characters on yellow background \033&#91;0m"
# echo -e "\033&#91;44;37m white characters on blue background \033&#91;0m"
# echo -e "\033&#91;45;37m white characters on purple background \033&#91;0m"
# echo -e "\033&#91;46;37m white characters on sky blue background \033&#91;0m"
# echo -e "\033&#91;47;30m black characters on white background \033&#91;0m"</code></pre>



<h4>内容四：echo 的其他案例<br>4.1 案例一：不换行带 tab 输出</h4>



<pre class="wp-block-code"><code># for month in Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec;do echo -e "$month\t\c";done
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec</code></pre>



<p>(补充：这里以不换行带 tab 输出 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 为例)</p>



<h4>4.2 案例二：先清屏再不换行输出</h4>



<pre class="wp-block-code"><code># echo -e "\033&#91;2J\033&#91;10A\Eternal Center\c"</code></pre>



<p>（补充：这里以先清屏再不换行输出 Eternal Center 为例）</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[工具] Shell 读取一个文件 （以列的方式）</title>
		<link>https://eternalcenter-may-1-2022.github.io/shell-read-a-file-in-columns/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Wed, 01 Sep 2021 06:52:18 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=17610</guid>

					<description><![CDATA[介绍： 作者：朱明宇名称：读取一个文件（以列的方式）作用：读取一个文件，并把里面的内容以空格作为分割符，分成 3 列显示出来 使用方法：1. 给此脚本添加执行权限2. 执行此脚本，并在输入此命令时，在后面添加要被读取文件 脚本：]]></description>
										<content:encoded><![CDATA[
<h2 id="介绍">介绍：</h2>



<p>作者：朱明宇<br>名称：读取一个文件（以列的方式）<br>作用：读取一个文件，并把里面的内容以空格作为分割符，分成 3 列显示出来</p>



<p>使用方法：<br>1. 给此脚本添加执行权限<br>2. 执行此脚本，并在输入此命令时，在后面添加要被读取文件</p>



<h2 id="脚本">脚本：</h2>



<pre class="wp-block-code"><code>#!/bin/bash

file=$1

if &#91;&#91; $# -lt 1 ]];then
        echo "This file does not exist"
        exit
fi

while read -r f1 f2 f3
do
        echo "file 1:$f1 ==&gt; file 2:$f2 ==&gt; file 3:$f3"

done &lt; "$file"</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[工具] Shell 读取一个文件 （以行的方式）</title>
		<link>https://eternalcenter-may-1-2022.github.io/shell-read-a-file-in-rows/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Wed, 01 Sep 2021 06:46:01 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=17607</guid>

					<description><![CDATA[介绍： 作者：朱明宇名称：读取一个文件（以行的方式）作用：读取一个文件（以行的方式），并把里面的内容显示出来 使用方法：1. 给此脚本添加执行权限2. 执行此脚本，并在输入此命令时，在后面添加要被读取文件 脚本：]]></description>
										<content:encoded><![CDATA[
<h2 id="介绍">介绍：</h2>



<p>作者：朱明宇<br>名称：读取一个文件（以行的方式）<br>作用：读取一个文件（以行的方式），并把里面的内容显示出来</p>



<p>使用方法：<br>1. 给此脚本添加执行权限<br>2. 执行此脚本，并在输入此命令时，在后面添加要被读取文件</p>



<h2 id="脚本">脚本：</h2>



<pre class="wp-block-code"><code>#!/bin/bash

file=$1

if &#91;&#91; $# -lt 1 ]];then
        echo "This file does not exist"
        exit
fi

while read line
do
        echo "$line"

done &lt; "$file"</code></pre>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[内容] Linux 变量组合</title>
		<link>https://eternalcenter-may-1-2022.github.io/linux-variable-combination/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sat, 02 Jan 2021 11:31:53 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=13153</guid>

					<description><![CDATA[案例一：直接组合变量 （补充：这里以将 a 和 1 组合成 a1 为例） 案例二：带空格组合变量 （补充：这里以将 a 和 1 组合成 a1 为例） 案例三：带空格和特殊符号组合变量 或者： （补充：这里以将 a 和 1 组合成 a: 1 为例） 案例四：带空格和特殊符号组合变量 （补充：这里以将 a 和 1 组合成 afile: 1.txt 为例）]]></description>
										<content:encoded><![CDATA[
<h4 id="案例一-直接组合变量">案例一：直接组合变量</h4>



<pre class="wp-block-code"><code># part1=a
# part2=1
# result=$part1$part2
# echo result
a1</code></pre>



<p>（补充：这里以将 a 和 1 组合成 a1 为例）</p>



<h4 id="案例二-带空格组合变量">案例二：带空格组合变量</h4>



<pre class="wp-block-code"><code># part1=a
# part2=1
# result="$part1 $part2"
# echo result
a1</code></pre>



<p>（补充：这里以将 a 和 1 组合成 a1 为例）</p>



<h4 id="案例三-带空格和特殊符号组合变量">案例三：带空格和特殊符号组合变量</h4>



<pre class="wp-block-code"><code># part1=a
# part2=1
# result="$part1: $part2"
# echo result
a: 1</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># part1=a
# part2=1
# result="$part1": "$part2"
# echo result
a: 1</code></pre>



<p>（补充：这里以将 a 和 1 组合成 a: 1 为例）</p>



<h4 id="案例四-带空格和特殊符号组合变量">案例四：带空格和特殊符号组合变量</h4>



<pre class="wp-block-code"><code># part1=a
# part2=1
# result="${part1}file: ${part2}.txt"
# echo result
afile: 1.txt</code></pre>



<p>（补充：这里以将 a 和 1 组合成 afile: 1.txt 为例）</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[步骤] Linux 位置变量</title>
		<link>https://eternalcenter-may-1-2022.github.io/linux-position-variable/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sat, 02 Jan 2021 09:49:08 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=13151</guid>

					<description><![CDATA[内容目录： 案例一：脚本本身1.1 脚本本身的名称1.2 显示脚本本身的名称 案例二：脚本某一个参数2.1 脚本某一个参数2.2 显示脚本某一个参数的值 案例三：脚本最后一个参数3.1 脚本最后一个参数3.2 显示脚本最后一个参数的值 案例四：脚本参数的个数4.1 脚本参数的个数4.2 显示脚本参数的个数 案例五：脚本所有参数的值5.1 脚本所有参数的值5.2 显示脚本所有参数的值 案例六：上一个命令的退出状态代码6.1 上一个命令的退出状态代码6.2 显示上一个命令的退出状态代码 案例七：上一个进程的 PID7.1 上一个进程的 PID7.2 显示上一个进程的 PID 案例八：设置位置变量 具体的内容： 案例一：脚本本身1.1 脚本本身的名称 1.2 显示脚本本身的名称 案例二：脚本某一个参数2.1 脚本某一个参数 （补充：当 为 1 时代表第 1 个位置参数、当 为 2 时代表第 2 个位置参数以此类推） 2.2 显示脚本某一个参数的值 案例三：脚本最后一个参数3.1 脚本最后一个参数 3.2 显示脚本最后一个参数的值 案例四：脚本参数的个数4.1 脚本参数的个数 4.2 显示脚本参数的个数 案例五：脚本所有参数的值5.1 &#8230; <p class="link-more"><a href="https://eternalcenter-may-1-2022.github.io/linux-position-variable/" class="more-link">Continue reading<span class="screen-reader-text"> "[步骤] Linux 位置变量"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h2 id="内容目录">内容目录：</h2>



<h4 id="案例一-脚本本身-1-1-脚本本身的名称-1-2-显示脚本本身的名称">案例一：脚本本身<br>1.1 脚本本身的名称<br>1.2 显示脚本本身的名称</h4>



<h4 id="案例二-脚本某一个参数-2-1-脚本某一个参数-2-2-显示脚本某一个参数的值">案例二：脚本某一个参数<br>2.1 脚本某一个参数<br>2.2 显示脚本某一个参数的值</h4>



<h4 id="案例三-脚本最后一个参数-3-1-脚本最后一个参数-3-2-显示脚本最后一个参数的值">案例三：脚本最后一个参数<br>3.1 脚本最后一个参数<br>3.2 显示脚本最后一个参数的值</h4>



<h4 id="案例四-脚本参数的个数-4-1-脚本参数的个数-4-2-显示脚本参数的个数">案例四：脚本参数的个数<br>4.1 脚本参数的个数<br>4.2 显示脚本参数的个数</h4>



<h4 id="案例五-脚本所有参数的值-5-1-脚本所有参数的值-5-2-显示脚本所有参数的值">案例五：脚本所有参数的值<br>5.1 脚本所有参数的值<br>5.2 显示脚本所有参数的值</h4>



<h4 id="案例六-上一个命令的退出状态代码-6-1-上一个命令的退出状态代码-6-2-显示上一个命令的退出状态代码">案例六：上一个命令的退出状态代码<br>6.1 上一个命令的退出状态代码<br>6.2 显示上一个命令的退出状态代码</h4>



<h4 id="案例七-上一个进程的-pid-7-1-上一个进程的-pid-7-2-显示上一个进程的-pid">案例七：上一个进程的 PID<br>7.1 上一个进程的 PID<br>7.2 显示上一个进程的 PID</h4>



<h4 id="案例八-设置位置变量">案例八：设置位置变量</h4>



<h2 id="具体的内容">具体的内容：</h2>



<h4 id="案例一-脚本本身-1-1-脚本本身的名称">案例一：脚本本身<br>1.1 脚本本身的名称</h4>



<pre class="wp-block-code"><code>$0</code></pre>



<h4 id="1-2-显示脚本本身的名称">1.2 显示脚本本身的名称</h4>



<pre class="wp-block-code"><code># echo $0 </code></pre>



<h4 id="案例二-脚本某一个参数-2-1-脚本某一个参数">案例二：脚本某一个参数<br>2.1 脚本某一个参数</h4>



<pre class="wp-block-code"><code>$&lt;number&gt;</code></pre>



<p>（补充：当 为 1 时代表第 1 个位置参数、当 为 2 时代表第 2 个位置参数以此类推）</p>



<h4 id="2-2-显示脚本某一个参数的值">2.2 显示脚本某一个参数的值</h4>



<pre class="wp-block-code"><code># echo $&lt;number&gt;</code></pre>



<h4 id="案例三-脚本最后一个参数-3-1-脚本最后一个参数">案例三：脚本最后一个参数<br>3.1 脚本最后一个参数</h4>



<pre class="wp-block-code"><code>\$$#</code></pre>



<h4 id="3-2-显示脚本最后一个参数的值">3.2 显示脚本最后一个参数的值</h4>



<pre class="wp-block-code"><code># eval echo \$$#</code></pre>



<h4 id="案例四-脚本参数的个数-4-1-脚本参数的个数">案例四：脚本参数的个数<br>4.1 脚本参数的个数</h4>



<pre class="wp-block-code"><code>$#</code></pre>



<h4 id="4-2-显示脚本参数的个数">4.2 显示脚本参数的个数</h4>



<pre class="wp-block-code"><code># echo $#</code></pre>



<h4 id="案例五-脚本所有参数的值-5-1-脚本所有参数的值">案例五：脚本所有参数的值<br>5.1 脚本所有参数的值</h4>



<pre class="wp-block-code"><code>$*</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code>$@</code></pre>



<p>（<br>补充：<br>1) 当所有参数不被双引号 “&#8221;&#8221;” 包括时，$* 和 $@ 会让每个参数都被一个双引号 “&#8221;&#8221;” 包括，例如：&#8221;1&#8243; &#8220;2&#8221; &#8220;3&#8221; &#8220;4&#8221; &#8220;5&#8221; ……<br>2) 当参数被双引号 “&#8221;&#8221;” 包括时，$* 会将所有参数视为一个整体并用双引号 “&#8221;&#8221;” 包括，例如：&#8221;1 2 3 4 5 ……&#8221;<br>3) 当参数被双引号 “&#8221;&#8221;” 包括时，$@ 会让每个参数都被一个双引号 “&#8221;&#8221;” 包括，例如：&#8221;1&#8243; &#8220;2&#8221; &#8220;3&#8221; &#8220;4&#8221; &#8220;5&#8221; ……<br>）</p>



<h4 id="5-2-显示脚本所有参数的值">5.2 显示脚本所有参数的值</h4>



<pre class="wp-block-code"><code># echo $*</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># echo $@</code></pre>



<h4 id="案例六-上一个命令的退出状态代码-6-1-上一个命令的退出状态代码">案例六：上一个命令的退出状态代码<br>6.1 上一个命令的退出状态代码</h4>



<pre class="wp-block-code"><code>$?</code></pre>



<p>（<br>补充：常用退出状态代码如下：<br>1) 0 成功<br>2) 1 未知错误<br>3) 2 Shell 命令被误用<br>4) 126 无法执行<br>5) 127 命令没有找到<br>6) 128 退出参数无效<br>7) 128+x 来自 Linux 信号 x 的致命错误<br>8) 130 按键 “Crtl” + “C” 的终止命令<br>9) 255 不属于规范内的退出状态<br>）</p>



<h4 id="6-2-显示上一个命令的退出状态代码">6.2 显示上一个命令的退出状态代码</h4>



<pre class="wp-block-code"><code># echo $?</code></pre>



<h4 id="案例七-上一个进程的-pid-7-1-上一个进程的-pid">案例七：上一个进程的 PID<br>7.1 上一个进程的 PID</h4>



<pre class="wp-block-code"><code>$$</code></pre>



<h4 id="7-2-显示上一个进程的-pid">7.2 显示上一个进程的 PID</h4>



<pre class="wp-block-code"><code># echo $$</code></pre>



<h4 id="案例八-设置位置变量">案例八：设置位置变量</h4>



<pre class="wp-block-code"><code># set a b c d e</code></pre>



<p>（补充：这里以设置 $1 为 a、$2 为 b、$3 为 c、$4 为 d、$5 为 e）</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[CONTENT] Linux Variable Default Value</title>
		<link>https://eternalcenter-may-1-2022.github.io/variable-default-value-en_us/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Mon, 21 Dec 2020 09:03:42 +0000</pubDate>
				<category><![CDATA[English (英文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=13125</guid>

					<description><![CDATA[中文 Content One: Set default values for variables on command Line1.1 Assign Values to Ordinary Variables （Add: let a be 1 and B be null as an example） 1.2 Set default values for variables on command Line （Add：If a is null, var1 is no, otherwise var1 is equal to aIf B is null, var2 is &#8230; <p class="link-more"><a href="https://eternalcenter-may-1-2022.github.io/variable-default-value-en_us/" class="more-link">Continue reading<span class="screen-reader-text"> "[CONTENT] Linux Variable Default Value"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<p class="has-text-align-right has-vivid-red-color has-text-color has-medium-font-size"><a href="https://eternalcenter-may-1-2022.github.io/variable-default-value-zh_cn/" data-type="URL" data-id="https://eternalcenter-may-1-2022.github.io/variable-default-value-zh_cn/">中文</a></p>



<h4 id="content-one-set-default-values-for-variables-on-command-line-1-1-assign-values-to-ordinary-variables">Content One: Set default values for variables on command Line<br>1.1 Assign Values to Ordinary Variables</h4>



<pre class="wp-block-code"><code># a=1
# b=</code></pre>



<p>（Add: let a be 1 and B be null as an example）</p>



<h4 id="1-2-set-default-values-for-variables-on-command-line">1.2 Set default values for variables on command Line</h4>



<pre class="wp-block-code"><code># var1=${a:-no}
# var2=${b:-no}</code></pre>



<p>（<br>Add：<br>If a is null, var1 is no, otherwise var1 is equal to a<br>If B is null, var2 is no, otherwise var2 is equal to B<br>）</p>



<h4 id="1-3-view-variable-results">1.3 View variable results</h4>



<pre class="wp-block-code"><code># echo $var1
1
# echo $var2
no</code></pre>



<p>（<br>Add：<br>The value of a is 1, so var1 is 1<br>The B is null, so var2 is no<br>）</p>



<h4 id="content-two-set-variable-defaults-in-script-2-1-setting-variable-defaults-in-scripts">Content Two：Set variable defaults in script<br>2.1 Setting variable defaults in scripts</h4>



<pre class="wp-block-code"><code># vim var_default.sh
Create the following：
#!/bin/bash
var_default="${1:-no}"
echo $var_default</code></pre>



<p>（Add：If the variable of $1 is null, then var_default is no, otherwise var_default is equal to $1, and print it out as an example）</p>



<h4 id="2-2-test-variable-defaults-in-scripts">2.2 Test variable defaults in scripts</h4>



<pre class="wp-block-code"><code># bash var_default.sh
no
# bash var_default.sh 1
1
# bash var_default.sh 2
2
# bash var_default.sh 3
3</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[内容] Linux 变量默认值</title>
		<link>https://eternalcenter-may-1-2022.github.io/variable-default-value-zh_cn/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Mon, 21 Dec 2020 08:50:58 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=13123</guid>

					<description><![CDATA[English 内容一：在命令行给变量设置默认值1.1 给两个普通变量赋值 （补充：这里以让 a 是 1，b 为空值为例） 1.2 在命令行给变量设置默认值 （补充：1) 如果 a 是空值，则 var1 是 no，否则 var1 等于 a2) 如果 b 是空值，则 var2 是 no，否则 var2 等于 b） 1.3 显示变量结果 （补充：1) a 的值是 1，所以 var1 是 12) b 的是空值，所以 var2 是 no） 内容二：在脚本中设置变量默认值2.1 创建设置变量默认值的脚本 创建以下内容： （补充：这里以如果 $1 的变量是空值，则 var_default 是 no，否则 var_default 等于 $1，并显示出来为例） &#8230; <p class="link-more"><a href="https://eternalcenter-may-1-2022.github.io/variable-default-value-zh_cn/" class="more-link">Continue reading<span class="screen-reader-text"> "[内容] Linux 变量默认值"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<p class="has-text-align-right has-vivid-red-color has-text-color has-medium-font-size"><a href="https://eternalcenter-may-1-2022.github.io/variable-default-value-en_us/" data-type="URL" data-id="https://eternalcenter-may-1-2022.github.io/variable-default-value-en_us/">English</a></p>



<h4 id="内容一-在命令行给变量设置默认值-1-1-给两个普通变量赋值">内容一：在命令行给变量设置默认值<br>1.1 给两个普通变量赋值</h4>



<pre class="wp-block-code"><code># a=1
# b=</code></pre>



<p>（补充：这里以让 a 是 1，b 为空值为例）</p>



<h4 id="1-2-在命令行给变量设置默认值">1.2 在命令行给变量设置默认值</h4>



<pre class="wp-block-code"><code># var1=${a:-no}
# var2=${b:-no}</code></pre>



<p>（<br>补充：<br>1) 如果 a 是空值，则 var1 是 no，否则 var1 等于 a<br>2) 如果 b 是空值，则 var2 是 no，否则 var2 等于 b<br>）</p>



<h4 id="1-3-显示变量结果">1.3 显示变量结果</h4>



<pre class="wp-block-code"><code># echo $var1
1
# echo $var2
no</code></pre>



<p>（<br>补充：<br>1) a 的值是 1，所以 var1 是 1<br>2) b 的是空值，所以 var2 是 no<br>）</p>



<h4 id="内容二-在脚本中设置变量默认值-2-1-创建设置变量默认值的脚本">内容二：在脚本中设置变量默认值<br>2.1 创建设置变量默认值的脚本</h4>



<pre class="wp-block-code"><code># vim var_default.sh</code></pre>



<p>创建以下内容：</p>



<pre class="wp-block-code"><code>#!/bin/bash
var_default="${1:-no}"
echo $var_default</code></pre>



<p>（补充：这里以如果 $1 的变量是空值，则 var_default 是 no，否则 var_default 等于 $1，并显示出来为例）</p>



<h4 id="2-2-测试设置变量默认值的脚本">2.2 测试设置变量默认值的脚本</h4>



<pre class="wp-block-code"><code># bash var_default.sh
no
# bash var_default.sh 1
1
# bash var_default.sh 2
2
# bash var_default.sh 3
3</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[内容] Linux 退出状态代码 （转载）</title>
		<link>https://eternalcenter-may-1-2022.github.io/exit/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Fri, 27 Nov 2020 13:30:16 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Operation (系统操作)]]></category>
		<category><![CDATA[System Operation & System Setting & System Software (系统操作 & 系统设置 & 系统软件)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=11788</guid>

					<description><![CDATA[注明：所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>Linux Shell学习笔记：exit退出状态代码

inux提供$?特殊变量来保存最后一条命令执行结束的退出状态。执行完一条命令后，立即执行echo$?，可以查看最后一条命令的退出状态值。

正常的情况下，命令成功执行完成的退出状态是0，如果非0，则命令执行有错。

该命令可以用于检查命令是否正确执行，比如在解压包的时候，检查解压包是否成功十分有效。

 

自定义退出状态码，可以在脚本中定义自己的退出状态代码，然后使用echo $?检查。

退出状态码最高是255，一般自定义的代码值为0~255，如果超出255，则返回该数值被256除了之后的余数。

 

 

退出状态代码：

0 命令成功完成

1通常的未知错误

2误用shell命令

126命令无法执行

127没有找到命令

128无效的退出参数

128+x使用Linux信号x的致命错误。

130使用Ctrl-C终止的命令

255规范外的退出状态

ubuntu下测试结果如下

    wl@wl-MS-7673:/home/python$ date
     
    2013年 11月 14日 星期四 19:12:45 CST
     
    wl@wl-MS-7673:/home/python$ echo $?
     
    0
     
    wl@wl-MS-7673:/home/python$ kkllk
     
    kkllk: command not found
     
    wl@wl-MS-7673:/home/python$ echo $?
     
    127
     
    wl@wl-MS-7673:/home/python$ ls
     
    hello.py hello.py~
     
    wl@wl-MS-7673:/home/python$ vim a.c
     
    wl@wl-MS-7673:/home/python$ ls
     
    hello.py hello.py~
     
    wl@wl-MS-7673:/home/python$ gedit a.c
     
    wl@wl-MS-7673:/home/python$ ./hello.py
     
    bash: ./hello.py: 权限不够
     
    wl@wl-MS-7673:/home/python$ echo $?
     
    126
     
    wl@wl-MS-7673:/home/python$ date %t
     
    date: 无效的日期"%t"
     
    wl@wl-MS-7673:/home/python$ echo $?
     
    1
     
    wl@wl-MS-7673:/home/python$


 

    root@wl-MS-7673:~# ls -sail test
     
    790207 4 -rwxr--r-- 1 root root 30 11月 14 19:25 test
     
    root@wl-MS-7673:~# ./test
     
    root@wl-MS-7673:~# echo $?
     
    44
     
    root@wl-MS-7673:~# cat test
     
    #!/bin/bash
     
    var=300
     
    exit $var
     
    root@wl-MS-7673:~#

————————————————
版权声明：本文为CSDN博主「ChasingdreamLY」的原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接及本声明。
原文链接：https://blog.csdn.net/qq_26591517/article/details/82492829</code></pre>



<p>注明：所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img width="1009" height="190" src="https://eternalcenter-may-1-2022.github.io/wp-content/uploads/2020/11/版权申明证明-退出状态代码.png" alt="" class="wp-image-11838" srcset="https://eternalcenter-may-1-2022.github.io/wp-content/uploads/2020/11/版权申明证明-退出状态代码.png 1009w, https://eternalcenter-may-1-2022.github.io/wp-content/uploads/2020/11/版权申明证明-退出状态代码-300x56.png 300w, https://eternalcenter-may-1-2022.github.io/wp-content/uploads/2020/11/版权申明证明-退出状态代码-768x145.png 768w" sizes="(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /><figcaption>CC 4.0 BY-SA 版权协议网址：https://creativecommons.org/licenses/by-sa/4.0/deed.z</figcaption></figure></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[命令] Linux 命令 [] （比较数值、文件、目录、链接、块、特殊文件、字符串）</title>
		<link>https://eternalcenter-may-1-2022.github.io/single-square-bracket/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Tue, 28 Jul 2020 08:26:20 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Operation (系统操作)]]></category>
		<category><![CDATA[System Operation & System Setting & System Software (系统操作 & 系统设置 & 系统软件)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=10353</guid>

					<description><![CDATA[内容一：[] 比较符号1.1 [] 数值比较符号 1) -eq 或者 ==，若两个数值存在且相等，则结果为真2) -ne 或者 !=，若两个数值存在且不相等，则结果为真3) -gt 或者 &#62;，若两个数值存在且前一个数值大于后一个数值，则结果为真4) -lt 或者 &#60;，若两个数值存在且前一个数值小于后一个数值，则结果为真5) -ge 或者 &#62;=，若两个数值存在且前一个数值大于或等于后一个数值，则结果为真6) -le 或者 &#60;=，若两个数值存在且前一个数值小于或等于后一个数值，则结果为真 1.2 [] 字符串比较符号 1) -z，如果字符串为空值，则结果为真2) -n，如果字符串不为空值，则结果为真3) == 或者 =，若两个字符串存在且一样，则结果为真4) !=，若两个字符串存在且不一样，则结果为真5) &#62;，若两个字符串存在且前一个字符串大于后一个字符串（按数字顺序或字母数顺序进行比较，越靠后的值越大），则结果为真6) &#60;，若两个字符串存在且前一个字符串小于后一个字符串（按数字顺序或字母数顺序进行比较，越靠后的值越大），则结果为真7) &#62;，若两个字符串存在且前一个字符串的 ASCII 码大于后一个字符串的 ASCII 码（按数字顺序或字母数顺序进行比较，越靠后的值越大），则结果为真8) \&#60;，若两个字符串存在且前一个字符串的 ASCII 码大于后一个字符串的 ASCII 码（按数字顺序或字母数顺序进行比较，越靠后的值越大），则结果为真 1.3 [] 文件、目录、链接、块、特殊文件比较符号 1) -e，若文件或目录或链接存在，则结果为真2) -d，若目录存在，则结果为真3) -f，若文件存在，则结果为真4) -L，若链接存在，则结果为真5) -b，若块文件存在，则结果为真6) -c，若字符型特殊文件存在，则结果为真7) &#8230; <p class="link-more"><a href="https://eternalcenter-may-1-2022.github.io/single-square-bracket/" class="more-link">Continue reading<span class="screen-reader-text"> "[命令] Linux 命令 [] （比较数值、文件、目录、链接、块、特殊文件、字符串）"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h4>内容一：[] 比较符号<br>1.1 [] 数值比较符号</h4>



<p>1) -eq 或者 ==，若两个数值存在且相等，则结果为真<br>2) -ne 或者 !=，若两个数值存在且不相等，则结果为真<br>3) -gt 或者 &gt;，若两个数值存在且前一个数值大于后一个数值，则结果为真<br>4) -lt 或者 &lt;，若两个数值存在且前一个数值小于后一个数值，则结果为真<br>5) -ge 或者 &gt;=，若两个数值存在且前一个数值大于或等于后一个数值，则结果为真<br>6) -le 或者 &lt;=，若两个数值存在且前一个数值小于或等于后一个数值，则结果为真</p>



<h4>1.2 [] 字符串比较符号</h4>



<p>1) -z，如果字符串为空值，则结果为真<br>2) -n，如果字符串不为空值，则结果为真<br>3) == 或者 =，若两个字符串存在且一样，则结果为真<br>4) !=，若两个字符串存在且不一样，则结果为真<br>5) &gt;，若两个字符串存在且前一个字符串大于后一个字符串（按数字顺序或字母数顺序进行比较，越靠后的值越大），则结果为真<br>6) &lt;，若两个字符串存在且前一个字符串小于后一个字符串（按数字顺序或字母数顺序进行比较，越靠后的值越大），则结果为真<br>7) &gt;，若两个字符串存在且前一个字符串的 ASCII 码大于后一个字符串的 ASCII 码（按数字顺序或字母数顺序进行比较，越靠后的值越大），则结果为真<br>8) \&lt;，若两个字符串存在且前一个字符串的 ASCII 码大于后一个字符串的 ASCII 码（按数字顺序或字母数顺序进行比较，越靠后的值越大），则结果为真</p>



<h4>1.3 [] 文件、目录、链接、块、特殊文件比较符号</h4>



<p>1) -e，若文件或目录或链接存在，则结果为真<br>2) -d，若目录存在，则结果为真<br>3) -f，若文件存在，则结果为真<br>4) -L，若链接存在，则结果为真<br>5) -b，若块文件存在，则结果为真<br>6) -c，若字符型特殊文件存在，则结果为真<br>7) -s，若文件存在且里面有内容，则结果为真<br>8) -r，若文件且可读，则结果为真<br>9) -w，若文件且可写，则结果为真<br>10) -x，若文件且可执行，则结果为真<br>11) -nt，若两个文件存在且前一个文件比后一个文件新，则结果为真<br>12) -ot，若两个文件存在且前一个文件比后一个文件新，则结果为真</p>



<h4>1.4 [] 逻辑符号</h4>



<p>1) -a，和<br>2) -o，或<br>3) !，非</p>



<h4>内容二：[] 的数值比较案例<br>2.1 案例一：对整数进行比较</h4>



<pre class="wp-block-code"><code># &#91; 0 -ne 1 ]
# echo $?
0</code></pre>



<p>（补充：这里以测试数字 0 是否不等于数字 1 为例）</p>



<h4>2.2 案例二：对字符串进行比较</h4>



<pre class="wp-block-code"><code># &#91; a == a ]
# echo $?
0</code></pre>



<p>（补充：这里以测试字符串 a 是否等于字符串 a 为例）</p>



<h4>2.3 案例三：对文件进行比较</h4>



<pre class="wp-block-code"><code># &#91; -f test.txt ]
# echo $?
0</code></pre>



<p>（补充：这里以测试文件 test.txt 是否存在为例）</p>



<h4>2.4 案例四：对变量进行比较</h4>



<pre class="wp-block-code"><code># a=1
# &#91; $a == 1 ]
# echo $?
0</code></pre>



<p>（补充：这里以测试变量 a 是否等于数字 1 为例）</p>



<h4>2.5 案例五：对变量进行比较并且同时使用逻辑符号</h4>



<pre class="wp-block-code"><code># a=1
# b=2
# c=1
# &#91; $a == $c -a $b == 2 ]
# echo $?
0</code></pre>



<p> （补充：这里以测试变量 a 是否等于变量 c 并且变量 b 是否等于数字 2 为例）</p>



<h4>2.6 案例六：对命令结果进行比较</h4>



<pre class="wp-block-code"><code># &#91; "`ls /tmp`" != "" ]
# echo $?
# 0</code></pre>



<p>（补充：这里以测试 ls /tmp 命令的运行结果是否存在为例）</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[命令] Linux 命令 test （比较数值、文件、目录、链接、块、特殊文件、字符串）</title>
		<link>https://eternalcenter-may-1-2022.github.io/test/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Tue, 28 Jul 2020 08:21:45 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Operation (系统操作)]]></category>
		<category><![CDATA[System Operation & System Setting & System Software (系统操作 & 系统设置 & 系统软件)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=10351</guid>

					<description><![CDATA[内容一：test 比较符号1.1 test 数值比较符号 1) -eq 或者 ==，若两个数值存在且相等，则结果为真2) -ne 或者 !=，若两个数值存在且不相等，则结果为真3) -gt 或者 &#62;，若两个数值存在且前一个数值大于后一个数值，则结果为真4) -lt 或者 &#60;，若两个数值存在且前一个数值小于后一个数值，则结果为真5) -ge 或者 &#62;=，若两个数值存在且前一个数值大于或等于后一个数值，则结果为真6) -le 或者 &#60;=，若两个数值存在且前一个数值小于或等于后一个数值，则结果为真 1.2 test 字符串比较符号 1) -z，如果字符串为空值，则结果为真2) -n，如果字符串不为空值，则结果为真3) == 或者 =，若两个字符串存在且一样，则结果为真4) !=，若两个字符串存在且不一样，则结果为真5) &#62;，若两个字符串存在且前一个字符串大于后一个字符串（按数字顺序或字母数顺序进行比较，越靠后的值越大），则结果为真6) &#60;，若两个字符串存在且前一个字符串小于后一个字符串（按数字顺序或字母数顺序进行比较，越靠后的值越大），则结果为真 1.3 test 文件、目录、链接、块、特殊文件比较符号 1) -e，若文件或目录或链接存在，则结果为真2) -d，若目录存在，则结果为真3) -f，若文件存在，则结果为真4) -L，若链接存在，则结果为真5) -b，若块文件存在，则结果为真6) -c，若字符型特殊文件存在，则结果为真7) -s，若文件存在且里面有内容，则结果为真8) -r，若文件且可读，则结果为真9) -w，若文件且可写，则结果为真10) -x，若文件且可执行，则结果为真11) -nt，若两个文件存在且前一个文件比后一个文件新，则结果为真12) -ot，若两个文件存在且前一个文件比后一个文件新，则结果为真 内容二：test 的数值比较案例2.1 案例一：对整数进行比较 （补充：这里以测试数字 &#8230; <p class="link-more"><a href="https://eternalcenter-may-1-2022.github.io/test/" class="more-link">Continue reading<span class="screen-reader-text"> "[命令] Linux 命令 test （比较数值、文件、目录、链接、块、特殊文件、字符串）"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h4>内容一：test 比较符号<br>1.1 test 数值比较符号</h4>



<p>1) -eq 或者 ==，若两个数值存在且相等，则结果为真<br>2) -ne 或者 !=，若两个数值存在且不相等，则结果为真<br>3) -gt 或者 &gt;，若两个数值存在且前一个数值大于后一个数值，则结果为真<br>4) -lt 或者 &lt;，若两个数值存在且前一个数值小于后一个数值，则结果为真<br>5) -ge 或者 &gt;=，若两个数值存在且前一个数值大于或等于后一个数值，则结果为真<br>6) -le 或者 &lt;=，若两个数值存在且前一个数值小于或等于后一个数值，则结果为真</p>



<h4>1.2 test 字符串比较符号</h4>



<p>1) -z，如果字符串为空值，则结果为真<br>2) -n，如果字符串不为空值，则结果为真<br>3) == 或者 =，若两个字符串存在且一样，则结果为真<br>4) !=，若两个字符串存在且不一样，则结果为真<br>5) &gt;，若两个字符串存在且前一个字符串大于后一个字符串（按数字顺序或字母数顺序进行比较，越靠后的值越大），则结果为真<br>6) &lt;，若两个字符串存在且前一个字符串小于后一个字符串（按数字顺序或字母数顺序进行比较，越靠后的值越大），则结果为真</p>



<h4>1.3 test 文件、目录、链接、块、特殊文件比较符号</h4>



<p>1) -e，若文件或目录或链接存在，则结果为真<br>2) -d，若目录存在，则结果为真<br>3) -f，若文件存在，则结果为真<br>4) -L，若链接存在，则结果为真<br>5) -b，若块文件存在，则结果为真<br>6) -c，若字符型特殊文件存在，则结果为真<br>7) -s，若文件存在且里面有内容，则结果为真<br>8) -r，若文件且可读，则结果为真<br>9) -w，若文件且可写，则结果为真<br>10) -x，若文件且可执行，则结果为真<br>11) -nt，若两个文件存在且前一个文件比后一个文件新，则结果为真<br>12) -ot，若两个文件存在且前一个文件比后一个文件新，则结果为真</p>



<h4>内容二：test 的数值比较案例<br>2.1 案例一：对整数进行比较</h4>



<pre class="wp-block-code"><code># test 0 -ne 1
# echo $?
0</code></pre>



<p>（补充：这里以测试数字 0 是否不等于数字 1 为例）</p>



<h4>2.2 案例二：对字符串进行比较</h4>



<pre class="wp-block-code"><code># test a == a
# echo $?
0</code></pre>



<p>（补充：这里以测试字符串 a 是否等于字符串 a 为例）</p>



<h4>2.3 案例三：对文件进行比较</h4>



<pre class="wp-block-code"><code># test -f test.txt
# echo $?
0</code></pre>



<p>（补充：这里以测试文件 test.txt 是否存在为例）</p>



<h4>2.4 案例四：对变量进行比较</h4>



<pre class="wp-block-code"><code># a=1
# test $a == 1
# echo $?
0</code></pre>



<p>（补充：这里以测试变量 a 是否等于数字 1 为例）</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[内容] Linux 空值的判断</title>
		<link>https://eternalcenter-may-1-2022.github.io/linux-null/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Wed, 22 Jul 2020 06:21:52 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=10227</guid>

					<description><![CDATA[案例一： 案例二： 案例三： 案例四：]]></description>
										<content:encoded><![CDATA[
<h4 id="案例一">案例一：</h4>



<pre class="wp-block-code"><code>#!/bin/bash
var=
if &#91; ! -n "$var" ]; then
  echo "NULL"
else
  echo "NOT NULL"
fi</code></pre>



<h4 id="案例二">案例二：</h4>



<pre class="wp-block-code"><code>#!/bin/bash
var=
if &#91; ! "$var" ]; then
  echo "NULL"
else
  echo "NOT NULL"
fi</code></pre>



<h4 id="案例三">案例三：</h4>



<pre class="wp-block-code"><code>#!/bin/sh 
var=
if &#91; "$var" = "" ]
then
  echo "NULL"
else  
  echo "NOT NULL"
fi</code></pre>



<h4 id="案例四">案例四：</h4>



<pre class="wp-block-code"><code>#!/bin/sh
var=
if test -z "$var"
then
  echo "NULL"
else  
  echo "NOT NULL"
fi</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[内容] Linux for 循环</title>
		<link>https://eternalcenter-may-1-2022.github.io/linux-for/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Tue, 21 Jul 2020 13:00:28 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=10200</guid>

					<description><![CDATA[内容目录： 内容一：Linux for 循环的格式 内容二：Linux for 循环的使用案例2.1 案例一：以名称作为循环条件2.2 案例二：以名称和通佩符的组合作为循环条件2.3 案例三：以当前目录下的文件名，并以名称和通佩符的组合作为循环条件2.4 案例四：以当前目录下的文件名，并以名称和连续符号的组合作为循环条件2.5 案例五：以连续数组作为循环条件2.5.1 以 seq 命令生成的数字作为循环条件2.5.2 以连续符号命令生成的数字作为循环条件2.6 案例六：以等差数列作为循环条件2.7 案例七：以命令的运行结果作为循环条件2.8 案例八：多个循环条件 具体的内容： 内容一：Linux for 循环的格式 内容二：Linux for 循环的使用案例2.1 案例一：以名称作为循环条件 (补充：这里以 host1、host2、host3 三个名称作为循环条件为例) 2.2 案例二：以名称和通佩符的组合作为循环条件 （补充：这里以 host1、host2、host3 三个名称作为循环条件，并且通过通佩符进行了缩写为例） 2.3 案例三：以当前目录下的文件名，并以名称和通佩符的组合作为循环条件 （补充：这里以所有以 txt 结尾的文件作为循环条件为例） 2.4 案例四：以当前目录下的文件名，并以名称和连续符号的组合作为循环条件 （补充：这里以所有以 txt 结尾的文件作为循环条件为例，并且通过通佩符进行了缩写为例） 2.5 案例五：以连续数组作为循环条件2.5.1 以 seq 命令生成的数字作为循环条件 （补充：这里以 seq 1 10 命令的运行结果 &#8230; <p class="link-more"><a href="https://eternalcenter-may-1-2022.github.io/linux-for/" class="more-link">Continue reading<span class="screen-reader-text"> "[内容] Linux for 循环"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h2 id="内容目录">内容目录：</h2>



<h4 id="内容一-shell-for-循环的格式">内容一：Linux for 循环的格式</h4>



<h4 id="内容二-linux-for-循环的使用案例-2-1-案例一-以名称作为循环条件-2-2-案例二-以名称和通佩符的组合作为循环条件-2-3-案例三-以当前目录下的文件名-并以名称和通佩符的组合作为循环条件-2-4-案例四-以当前目录下的文件名-并以名称和连续符号的组合作为循环条件-2-5-案例五-以连续数组作为循环条件-2-5-1-以-seq-命令生成的数字作为循环条件-2-5-2-以连续符号命令生成的数字作为循环条件-2-6-案例六-以等差数列作为循环条件-2-7-案例七-以命令的运行结果作为循环条件-2-8-案例八-多个循环条件">内容二：Linux for 循环的使用案例<br>2.1 案例一：以名称作为循环条件<br>2.2 案例二：以名称和通佩符的组合作为循环条件<br>2.3 案例三：以当前目录下的文件名，并以名称和通佩符的组合作为循环条件<br>2.4 案例四：以当前目录下的文件名，并以名称和连续符号的组合作为循环条件<br>2.5 案例五：以连续数组作为循环条件<br>2.5.1 以 seq 命令生成的数字作为循环条件<br>2.5.2 以连续符号命令生成的数字作为循环条件<br>2.6 案例六：以等差数列作为循环条件<br>2.7 案例七：以命令的运行结果作为循环条件<br>2.8 案例八：多个循环条件</h4>



<h2 id="具体的内容">具体的内容：</h2>



<h4 id="内容一-shell-for-循环的格式">内容一：Linux for 循环的格式</h4>



<pre class="wp-block-code"><code>for &lt;variable&gt; in &lt;list&gt;
do
&lt;command&gt;
done</code></pre>



<h4 id="内容二-linux-for-循环的使用案例-2-1-案例一-以名称作为循环条件">内容二：Linux for 循环的使用案例<br>2.1 案例一：以名称作为循环条件</h4>



<pre class="wp-block-code"><code># for i in host1 host2 host3; do echo $i; done
host1
host2
host3</code></pre>



<p>(补充：这里以 host1、host2、host3 三个名称作为循环条件为例)</p>



<h4 id="2-2-案例二-以名称和通佩符的组合作为循环条件">2.2 案例二：以名称和通佩符的组合作为循环条件</h4>



<pre class="wp-block-code"><code># for i in host{1..3}; do echo $i; done
host1
host2
host3</code></pre>



<p>（补充：这里以 host1、host2、host3 三个名称作为循环条件，并且通过通佩符进行了缩写为例）</p>



<h4 id="2-3-案例三-以当前目录下的文件名-并以名称和通佩符的组合作为循环条件">2.3 案例三：以当前目录下的文件名，并以名称和通佩符的组合作为循环条件</h4>



<pre class="wp-block-code"><code># for i in *.txt ;do ls $i; done
a.txt
b.txt
c.txt</code></pre>



<p>（补充：这里以所有以 txt 结尾的文件作为循环条件为例）</p>



<h4 id="2-4-案例四-以当前目录下的文件名-并以名称和连续符号的组合作为循环条件">2.4 案例四：以当前目录下的文件名，并以名称和连续符号的组合作为循环条件</h4>



<pre class="wp-block-code"><code># for i in {a..c}.txt; do ls $i; done
a.txt
b.txt
c.txt</code></pre>



<p>（补充：这里以所有以 txt 结尾的文件作为循环条件为例，并且通过通佩符进行了缩写为例）</p>



<h4 id="2-5-案例五-以连续数组作为循环条件-2-5-1-以-seq-命令生成的数字作为循环条件">2.5 案例五：以连续数组作为循环条件<br>2.5.1 以 seq 命令生成的数字作为循环条件</h4>



<pre class="wp-block-code"><code># for i in `seq 1 10`; do echo $i; done
1
2
3
4
5
6
7
8
9
10</code></pre>



<p>（补充：这里以 seq 1 10 命令的运行结果 1 到 10 作为循环条件为例）</p>



<h4 id="2-5-2-以连续符号命令生成的数字作为循环条件">2.5.2 以连续符号命令生成的数字作为循环条件</h4>



<pre class="wp-block-code"><code># for i in {1..10} ; do echo $i; done
1
2
3
4
5
6
7
8
9
10</code></pre>



<p>（补充：这里以 {1..10} 符号命令的运行结果 1 到 10 作为循环条件为例）</p>



<h4 id="2-6-案例六-以等差数列作为循环条件">2.6 案例六：以等差数列作为循环条件</h4>



<pre class="wp-block-code"><code># for i in `seq 2 2 10`; do echo $i; done
2
4
6
8
10</code></pre>



<p>（补充：这里以 seq 2 2 10 命令的运行结果 1 到 10 里的双数作为循环条件为例）</p>



<h4 id="2-7-案例七-以命令的运行结果作为循环条件">2.7 案例七：以命令的运行结果作为循环条件</h4>



<pre class="wp-block-code"><code># for i in `cat user.list`; do echo $i; done
Tom
Natasha</code></pre>



<p>（补充：这里以 cat user.list 命令的运行结果 user.list 文件里的内容作为循环条件为例）</p>



<h4 id="2-8-案例八-多个循环条件">2.8 案例八：多个循环条件</h4>



<pre class="wp-block-code"><code>&gt; for i in {1..4}.{1..4}; do echo $i; done
1.1
1.2
1.3
1.4
2.1
2.2
2.3
2.4
3.1
3.2
3.3
3.4
4.1
4.2
4.3
4.4</code></pre>



<p>（补充：这里以  {1..4}.{1..4}  命令的运行结果 1.1 到 4.4 作为循环条件为例）</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[内容] 正则表达式 （转载）</title>
		<link>https://eternalcenter-may-1-2022.github.io/regular-expression/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Tue, 16 Jun 2020 15:21:01 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Python Basic (基础)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<category><![CDATA[System File (系统文件)]]></category>
		<category><![CDATA[System Storage & System Directory & System File (系统存储 & 系统目录 & 系统文件)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=9786</guid>

					<description><![CDATA[注明：所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>shell正则表达式应用

正则表达式
一、 什么是正则表达式

  什么是正则表达式？正则表达式是用于描述字符排列和匹配模式的一种语法规则。在很多程序设计语言中都支持利用正则表达式来进行字符串的操作，不同语言中的正则表达式略有不同，但是毕竟都是正则，其本质思想都是一致的，当我们掌握了shell中的正则后，再去看python或者perl里面的正则表达式时，会发现其实都是一样的东东。

　　在shell的一些命令中，有些并不支持正则表达式，但是它们支持Linux里面的通配符，那么通配符又是什么东东呢，它跟正则表达式又有什么关系？

　　正则表达式用来在文件中匹配符合条件的字符串，正则是包含匹配。grep、awk、sed等命令都支持正则表达式。通配符用来匹配符合条件的文件名，通配符是完全匹配。ls、find、cp这些命令不支持正则表达式，所以只能使用shell自己的通配符来进行匹配了。

Shell通配符主要是下面三个：

*  匹配任意字符

?  匹配任意一个字符 

     &#91;]  匹配匹配中括号中的一个字符

                                                                         

首先，正则表达式是用来匹配文件中文本的字符串，而通配符是用来匹配符合条件的文件名；其次正则表达式是包含匹配，只要包含正则中的字符串，就匹配，而通配符是完全匹配，也就是说，必须要与条件中的字符串一模一样才会匹配。 

说了这么多，其实正则表达式主要用于字符串的模式分割、匹配、查找及替换操作，下面来关注一下正则表达式基本的元字符和它的作用。 
二、正则表达式基本的元字符

元字符
	

作用
	

举例说明

*
	

前一个字符匹配0次或者任意多次
	

"a*" 匹配所有内容，包括空白行 
"aa*" 匹配至少包含一个a的行
"aaa*" 匹配最后包含两个连续a的字符串
"aaaaa*"匹配最少包含4个连续a的字符串

.
	

匹配除了换行符外的任意一个字符
	

"s..d" 匹配在s和d这两个字母之间一定有两个

字符的单词
"s.*d" 匹配在s和d字母之间有任意字符
".*" 匹配所有内容

^
	

匹配行首
	

"^hello" 匹配以hello开头的行
"^M" 匹配以大写“M”开头的行

$
	

匹配行尾
	

"hello$" 匹配以hello结尾的行 
"n$" 匹配以小写“n”结尾的行
"^$" 匹配空白行

 

&#91;]
	

匹配中括号中指定的任意一个字符，只匹配一
个字符
	

"&#91;aeiou]" 匹配任意一个元音字母，
"&#91;0-9]" 匹配任意一位数字，
"&#91;a-z]&#91;0-9]" 匹配小写字母和一位数字构成的两位字符。
"s&#91;ao]id" 匹配s和i字母中，要么是a，要么是o

"&#91;0-9]"  匹配任意一个数字

"^&#91;a-z]" 匹配小写字母开头的行

&#91;^]
	

匹配中括号的字符以外的任意一个字符
	

"&#91;^0-9]" 匹配任意一位非数字字符，
"&#91;^a-z]" 表示任意一位非小写字母
"^&#91;^a-z]"  匹配不是小写字母开头的行
"^&#91;^a-zA-Z]" 匹配不是字母开头的行

\
	

转义符。用于将特殊符号的含义取消
	

"\.$" 匹配使用"."结尾的行

\{n\}
	

表示其前面的字符恰好出现n次
	

"&#91;0-9]\{4\}" 匹配4位数字，
"&#91;1]&#91;3-8]&#91;0-9]\{9\}" 匹配手机号码
"a\{3\}"  匹配a字母连续出现3次的字符串
"&#91;0-9]\{3\}" 匹配包含连续的3个数字的字符串

\{n,\}
	

表示其前面的字符出现不小于n次
	

"&#91;0-9]\{2,\}" 表示两位及以上的数字。
"&#91;0-9]\{3,\}&#91;a-z]" 匹配最少用连续3个数字开头

的字符串

\{n,m\}
	

表示其前面的字符至少出现n次，最多出现
m次
	

"&#91;a-z]\{6,8\}" 匹配6到8位的小写字母。
"sa\{1,3\}i" 匹配在字母s和i直接有最少一个a，

最多三个a

( )
	

 
	

 

{ }
	

指定字符出现的次数
	

 

?
	

匹配一个字符0或1次，等价于 {0,1}
	

 

+
	

匹配一个字符1或多次，等价于{1,}
	

 

|
	

 
	

 
三、shell常用正则表达式

 “^\d+$” //非负整数（正整数 + 0）  
“^&#91;0-9]*&#91;1-9]&#91;0-9]*$” //正整数  
“^((-\d+)|(0+))$” //非正整数（负整数 + 0）  
“^-&#91;0-9]*&#91;1-9]&#91;0-9]*$” //负整数  
“^-?\d+$” //整数  
“^\d+(\.\d+)?$” //非负浮点数（正浮点数 + 0）  
“^((&#91;0-9]+\.&#91;0-9]*&#91;1-9]&#91;0-9]*)|(&#91;0-9]*&#91;1-9]&#91;0-9]*\.&#91;0-9]+)|(&#91;0-9]*&#91;1-9]&#91;0-9]*))$” //正浮点数  
“^((-\d+(\.\d+)?)|(0+(\.0+)?))$” //非正浮点数（负浮点数 + 0）  
“^(-((&#91;0-9]+\.&#91;0-9]*&#91;1-9]&#91;0-9]*)|(&#91;0-9]*&#91;1-9]&#91;0-9]*\.&#91;0-9]+)|(&#91;0-9]*&#91;1-9]&#91;0-9]*)))$” //负浮点数  
“^(-?\d+)(\.\d+)?$” //浮点数  
“^&#91;A-Za-z]+$” //由26个英文字母组成的字符串  
“^&#91;A-Z]+$” //由26个英文字母的大写组成的字符串  
“^&#91;a-z]+$” //由26个英文字母的小写组成的字符串  
“^&#91;A-Za-z0-9]+$” //由数字和26个英文字母组成的字符串  
“^\w+$” //由数字、26个英文字母或者下划线组成的字符串  
“^&#91;\w-]+(\.&#91;\w-]+)*@&#91;\w-]+(\.&#91;\w-]+)+$” //email地址  
“^&#91;a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$” //url  
/^(d{2}|d{4})-((0(&#91;1-9]{1}))|(1&#91;1|2]))-((&#91;0-2](&#91;1-9]{1}))|(3&#91;0|1]))$/   //  年-月-日  
/^((0(&#91;1-9]{1}))|(1&#91;1|2]))/((&#91;0-2](&#91;1-9]{1}))|(3&#91;0|1]))/(d{2}|d{4})$/   // 月/日/年  
“^(&#91;w-.]+)@((&#91;&#91;0-9]{1,3}.&#91;0-9]{1,3}.&#91;0-9]{1,3}.)|((&#91;w-]+.)+))(&#91;a-zA-Z]{2,4}|&#91;0-9]{1,3})(]?)$”   //Emil  
/^((\+?&#91;0-9]{2,4}\-&#91;0-9]{3,4}\-)|(&#91;0-9]{3,4}\-))?(&#91;0-9]{7,8})(\-&#91;0-9]+)?$/     //电话号码  
“^(d{1,2}|1dd|2&#91;0-4]d|25&#91;0-5]).(d{1,2}|1dd|2&#91;0-4]d|25&#91;0-5]).(d{1,2}|1dd|2&#91;0-4]d|25&#91;0-5]).(d{1,2}|1dd|2&#91;0-4]d|25&#91;0-5])$”   //IP地址  

匹配中文字符的正则表达式： &#91;\u4e00-\u9fa5]  
匹配双字节字符(包括汉字在内)：&#91;^\x00-\xff]  
匹配空行的正则表达式：\n&#91;\s| ]*\r  
匹配HTML标记的正则表达式：/&lt;(.*)>.*&lt;\/\1>|&lt;(.*) \/>/  
匹配首尾空格的正则表达式：(^\s*)|(\s*$)  
匹配Email地址的正则表达式：\w+(&#91;-+.]\w+)*@\w+(&#91;-.]\w+)*\.\w+(&#91;-.]\w+)*  
匹配网址URL的正则表达式：^&#91;a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$  
匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^&#91;a-zA-Z]&#91;a-zA-Z0-9_]{4,15}$  
匹配国内电话号码：(\d{3}-|\d{4}-)?(\d{8}|\d{7})?  
匹配腾讯QQ号：^&#91;1-9]*&#91;1-9]&#91;0-9]*$  
四、元字符及其在正则表达式上下文中的行为 

\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。 
 
 
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性，^ 也匹配 '\n' 或 '\r' 之后的位置。 
 
 
$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性，$ 也匹配 '\n' 或 '\r' 之前的位置。 
 
 
* 匹配前面的子表达式零次或多次。 
 
 
+ 匹配前面的子表达式一次或多次。+ 等价于 {1,}。 
 
 
? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。 
 
 
{n} n 是一个非负整数，匹配确定的n 次。 
 
 
{n,} n 是一个非负整数，至少匹配n 次。 
 
 
{n,m} m 和 n 均为非负整数，其中n &lt;= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。 
 
 
? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时，匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串，而默认的贪婪模式则尽可能多的匹配所搜索的字符串。 
 
 
. 匹配除 “\n” 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符，请使用象 '&#91;.\n]' 的模式。  
(pattern) 匹配pattern 并获取这一匹配。 
 
 
(?:pattern) 匹配pattern 但不获取匹配结果，也就是说这是一个非获取匹配，不进行存储供以后使用。 
 
 
(?=pattern) 正向预查，在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配，也就是说，该匹配不需要获取供以后使用。 
 
 
(?!pattern) 负向预查，与(?=pattern)作用相反 
 
 
x|y 匹配 x 或 y。 
 
 
&#91;xyz] 字符集合。 
 
 
&#91;^xyz] 负值字符集合。 
 
 
&#91;a-z] 字符范围，匹配指定范围内的任意字符。 
 
 
&#91;^a-z] 负值字符范围，匹配任何不在指定范围内的任意字符。 
 
 
\b 匹配一个单词边界，也就是指单词和空格间的位置。 
 
 
\B 匹配非单词边界。 
 
 
\cx 匹配由x指明的控制字符。 
 
 
\d 匹配一个数字字符。等价于 &#91;0-9]。 
 
 
\D 匹配一个非数字字符。等价于 &#91;^0-9]。 
 
 
\f 匹配一个换页符。等价于 \x0c 和 \cL。 
 
 
\n 匹配一个换行符。等价于 \x0a 和 \cJ。 
 
 
\r 匹配一个回车符。等价于 \x0d 和 \cM。 
 
 
\s 匹配任何空白字符，包括空格、制表符、换页符等等。等价于&#91; \f\n\r\t\v]。 
 
 
\S 匹配任何非空白字符。等价于 &#91;^ \f\n\r\t\v]。 
 
 
\t 匹配一个制表符。等价于 \x09 和 \cI。 
 
 
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。 
 
 
\w 匹配包括下划线的任何单词字符。等价于'&#91;A-Za-z0-9_]'。 
 
 
\W 匹配任何非单词字符。等价于 '&#91;^A-Za-z0-9_]'。 
 
 
\xn 匹配 n，其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。 
 
 
\num 匹配 num，其中num是一个正整数。对所获取的匹配的引用。 
 
 
\n 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式，则 n 为后向引用。否则，如果 n 为八进制数字 (0-7)，则 n 为一个八进制转义值。 
 
 
\nm 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式，则 nm 为后向引用。如果 \nm 之前至少有 n 个获取，则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足，若 n 和 m 均为八进制数字 (0-7)，则 \nm 将匹配八进制转义值 nm。 
 
 
\nml 如果 n 为八进制数字 (0-3)，且 m 和 l 均为八进制数字 (0-7)，则匹配八进制转义值 nml。 
 
 
\un 匹配 n，其中 n 是一个用四个十六进制数字表示的Unicode字符。 
 
 

匹配中文字符的正则表达式： &#91;u4e00-u9fa5] 
 
 
匹配双字节字符(包括汉字在内)：&#91;^x00-xff] 
 
 
匹配空行的正则表达式：n&#91;s| ]*r 
 
 
匹配HTML标记的正则表达式：/&lt;(.*)>.*&lt;/1>|&lt;(.*) />/ 
 
 
匹配首尾空格的正则表达式：(^s*)|(s*$) 
 
 
匹配Email地址的正则表达式：w+(&#91;-+.]w+)*@w+(&#91;-.]w+)*.w+(&#91;-.]w+)* 
 
 
匹配网址URL的正则表达式：http://(&/#91;w-]+.)+&#91;w-]+(/&#91;w- ./?%&amp;=]*)? 
 
 

利用正则表达式限制网页表单里的文本框输入内容： 

 用正则表达式限制只能输入中文：οnkeyup=”value=value.replace(/&#91;^u4E00-u9FA5]/g,”)” onbeforepaste=”clipboardData.setData('text',clipboardData.getData('text').replace(/&#91;^u4E00-u9FA5]/g,”))” 
 
 
用正则表达式限制只能输入全角字符： οnkeyup=”value=value.replace(/&#91;^uFF00-uFFFF]/g,”)” onbeforepaste=”clipboardData.setData('text',clipboardData.getData('text').replace(/&#91;^uFF00-uFFFF]/g,”))” 
 
 
用正则表达式限制只能输入数字：οnkeyup=”value=value.replace(/&#91;^d]/g,”) “onbeforepaste=”clipboardData.setData('text',clipboardData.getData('text').replace(/&#91;^d]/g,”))” 
 
 
用正则表达式限制只能输入数字和英文：οnkeyup=”value=value.replace(/&#91;W]/g,”) “onbeforepaste=”clipboardData.setData('text',clipboardData.getData('text').replace(/&#91;^d]/g,”))” 
  
五、其他常用正则表达式 

 
 
匹配中文字符的正则表达式： &#91;\u4e00-\u9fa5] 
 
 
匹配双字节字符(包括汉字在内)：&#91;^\x00-\xff] 
 
 
匹配空行的正则表达式：\n&#91;\s| ]*\r 
 
 
匹配HTML标记的正则表达式：/&lt;(.*)>.*&lt;\/\1>|&lt;(.*) \/>/ 
 
 
匹配首尾空格的正则表达式：(^\s*)|(\s*$) 
 
 
匹配IP地址的正则表达式：/(\d+)\.(\d+)\.(\d+)\.(\d+)/g // 
 
 
匹配Email地址的正则表达式：\w+(&#91;-+.]\w+)*@\w+(&#91;-.]\w+)*\.\w+(&#91;-.]\w+)* 
 
 
匹配网址URL的正则表达式：http://(/&#91;\w-]+\.)+&#91;\w-]+(/&#91;\w- ./?%&amp;=]*)? 
 
 

sql语句：^(select|drop|delete|create|update|insert).*$ 

 
 
1、非负整数：^\d+$ 
 
 
2、正整数：^&#91;0-9]*&#91;1-9]&#91;0-9]*$ 
 
 
3、非正整数：^((-\d+)|(0+))$ 
 
 
4、负整数：^-&#91;0-9]*&#91;1-9]&#91;0-9]*$ 
 
 
5、整数：^-?\d+$ 
 
 
6、非负浮点数：^\d+(\.\d+)?$ 
 
 
7、正浮点数：^((0-9)+\.&#91;0-9]*&#91;1-9]&#91;0-9]*)|(&#91;0-9]*&#91;1-9]&#91;0-9]*\.&#91;0-9]+)| (&#91;0-9]*&#91;1-9]&#91;0-9]*))$ 
 
 
8、非正浮点数：^((-\d+\.\d+)?)|(0+(\.0+)?))$ 
 
 
9、负浮点数：^(-((正浮点数正则式)))$ 
 
 
10、英文字符串：^&#91;A-Za-z]+$ 
 
 
11、英文大写串：^&#91;A-Z]+$ 
 
 
12、英文小写串：^&#91;a-z]+$ 
 
 
13、英文字符数字串：^&#91;A-Za-z0-9]+$ 
 
 
14、英数字加下划线串：^\w+$ 
 
 
15、E-mail地址：^&#91;\w-]+(\.&#91;\w-]+)*@&#91;\w-]+(\.&#91;\w-]+)+$ 
 
 
16、URL：^&#91;a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$  
或：^http:\/\/&#91;A-Za-z0-9]+\.&#91;A-Za-z0-9]+&#91;\/=\?%\-&amp;_~`@&#91;\]\':+!]*(&#91;^&amp; lt;>\"\"])*$ 
 
 
17、邮政编码：^&#91;1-9]\d{5}$ 
 
 
18、中文：^&#91;\u0391-\uFFE5]+$ 
 
 
19、电话号码：^((\d2,3
)|(\d{3}\-))?(0\d2,3|0\d{2,3}-)?&#91;1-9] \d{6,7}(\-\d{1,4})?$ 
 
 
20、手机号码：^((\d2,3)|(\d{3}\-))?13\d{9}$ 
 
 
21、双字节字符(包括汉字在内)：^\x00-\xff 
 
22、匹配首尾空格：(^\s*)|(\s*$)（像vbscript那样的trim函数） 
 
23、匹配HTML标记：&lt;(.*)>.*&lt;\/\1>|&lt;(.*) \/> 
 
24、匹配空行：\n&#91;\s| ]*\r 
 
25、提取信息中的网络链接：(h|H)(r|R)(e|E)(f|F) *= *('|”)?(\w|\\|\/|\.)+('|”| *|>)? 
 
26、提取信息中的邮件地址：\w+(&#91;-+.]\w+)*@\w+(&#91;-.]\w+)*\.\w+(&#91;-.]\w+)* 
 
27、提取信息中的图片链接：(s|S)(r|R)(c|C) *= *('|”)?(\w|\\|\/|\.)+('|”| *|>)? 
 
28、提取信息中的IP地址：(\d+)\.(\d+)\.(\d+)\.(\d+) 
 
29、提取信息中的中国手机号码：(86)*0*13\d{9} 
 
30、提取信息中的中国固定电话号码：(\d3,4|\d{3,4}-|\s)?\d{8} 
 
31、提取信息中的中国电话号码（包括移动和固定电话）：(\d3,4|\d{3,4}-|\s)?\d{7,14} 
 
32、提取信息中的中国邮政编码：&#91;1-9]{1}(\d+){5} 
 
33、提取信息中的浮点数（即小数）：(-?\d*)\.?\d+ 
 
34、提取信息中的任何数字 ：(-?\d*)(\.\d+)? 
 
35、IP：(\d+)\.(\d+)\.(\d+)\.(\d+) 
 
36、电话区号：/^0\d{2,3}$/ 
 
37、腾讯QQ号：^&#91;1-9]*&#91;1-9]&#91;0-9]*$ 
 
38、帐号(字母开头，允许5-16字节，允许字母数字下划线)：^&#91;a-zA-Z]&#91;a-zA-Z0-9_]{4,15}$ 
 
39、中文、英文、数字及下划线：^&#91;\u4e00-\u9fa5_a-zA-Z0-9]+$
————————————————
版权声明：本文为CSDN博主「WingoPower」的原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。
原文链接：https://blog.csdn.net/qq_38382148/java/article/details/78644011</code></pre>



<p>注明：所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" width="1012" height="188" src="https://eternalcenter-may-1-2022.github.io/wp-content/uploads/2020/06/regular-expression-版权声明证明.png" alt="" class="wp-image-9787" srcset="https://eternalcenter-may-1-2022.github.io/wp-content/uploads/2020/06/regular-expression-版权声明证明.png 1012w, https://eternalcenter-may-1-2022.github.io/wp-content/uploads/2020/06/regular-expression-版权声明证明-300x56.png 300w, https://eternalcenter-may-1-2022.github.io/wp-content/uploads/2020/06/regular-expression-版权声明证明-768x143.png 768w" sizes="(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /><figcaption>CC 4.0 BY-SA 版权协议网址：https://creativecommons.org/licenses/by-sa/4.0/deed.z</figcaption></figure></div>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[内容] Linux if 条件判断 （转载）</title>
		<link>https://eternalcenter-may-1-2022.github.io/linux-if/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Fri, 17 Apr 2020 06:24:06 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Basic (基础)]]></category>
		<guid isPermaLink="false">https://eternalcenter-may-1-2022.github.io/?p=8748</guid>

					<description><![CDATA[注明：所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>shell-if表达式（-f,-d,-s,-r,-w,-x,-eq,-ne,-ge,-gt,-le,-lt ）

文件表达式

if &#91; -f file ] 如果文件存在
if &#91; -d … ] 如果目录存在
if &#91; -s file ] 如果文件存在且非空
if &#91; -r file ] 如果文件存在且可读
if &#91; -w file ] 如果文件存在且可写
if &#91; -x file ] 如果文件存在且可执行
整数变量表达式

if &#91; int1 -eq int2 ] 如果int1等于int2
if &#91; int1 -ne int2 ] 如果不等于
if &#91; int1 -ge int2 ] 如果&gt;=
if &#91; int1 -gt int2 ] 如果&gt;
if &#91; int1 -le int2 ] 如果&lt;=
if &#91; int1 -lt int2 ] 如果&lt;
字符串变量表达式

If &#91; $a = $b ] 如果string1等于string2
字符串允许使用赋值号做等号
if &#91; $string1 != $string2 ] 如果string1不等于string2
if &#91; -n $string ] 如果string 非空(非0），返回0(true)
if &#91; -z $string ] 如果string 为空
if &#91; $sting ] 如果string 非空，返回0 (和-n类似)
s​h​e​l​l​中​条​件​判​断​i​f​中​的​-​z​到​-​d​的​意​思

&#91; -a FILE ] 如果 FILE 存在则为真。
&#91; -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。

&#91; -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。

&#91; -d FILE ] 如果 FILE 存在且是一个目录则为真。

&#91; -e FILE ] 如果 FILE 存在则为真。
&#91; -f FILE ] 如果 FILE 存在且是一个普通文件则为真。

&#91; -g FILE ] 如果 FILE 存在且已经设置了SGID则为真。
&#91; -h FILE ] 如果 FILE 存在且是一个符号连接则为真。

&#91; -k FILE ] 如果 FILE 存在且已经设置了粘制位则为真。 &#91;

-p FILE ] 如果 FILE 存在且是一个名字管道(F如果O)则为真。

&#91; -r FILE ] 如果 FILE 存在且是可读的则为真。

&#91; -s FILE ] 如果 FILE 存在且大小不为0则为真。
&#91; -t FD ] 如果文件描述符 FD 打开且指向一个终端则为真。

&#91; -u FILE ] 如果 FILE 存在且设置了SUID (set user ID)则为真。

&#91; -w FILE ] 如果 FILE 如果 FILE 存在且是可写的则为真。

&#91; -x FILE ] 如果 FILE 存在且是可执行的则为真。

&#91; -O FILE ] 如果 FILE 存在且属有效用户ID则为真。

&#91; -G FILE ] 如果 FILE 存在且属有效用户组则为真。 &#91; -L FILE ] 如果 FILE 存在且是一个符号连接则为真。
&#91; -N FILE ] 如果 FILE 存在 and has been mod如果ied since it was last read则为真。
&#91; -S FILE ] 如果 FILE 存在且是一个套接字则为真。
&#91; FILE1 -nt FILE2 ] 如果 FILE1 has been changed more recently than FILE2,or 如果 FILE1 exists and FILE2 does not则为真。
&#91; FILE1 -ot FILE2 ] 如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真。
&#91; FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的设备和节点号则为真。

&#91; -o OPTIONNAME ] 如果 shell选项 “OPTIONNAME” 开启则为真。

&#91; -z STRING ] “STRING” 的长度为零则为真。
————————————————
版权声明：本文为CSDN博主「打卤」的原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接及本声明。
原文链接：https://blog.csdn.net/liyyzz33/java/article/details/84836255</code></pre>



<p>注明：所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1010" height="234" src="https://eternalcenter-may-1-2022.github.io/wp-content/uploads/2020/04/版权声明证明-Shell-if-判断条件种类.png" alt="" class="wp-image-8749" srcset="https://eternalcenter-may-1-2022.github.io/wp-content/uploads/2020/04/版权声明证明-Shell-if-判断条件种类.png 1010w, https://eternalcenter-may-1-2022.github.io/wp-content/uploads/2020/04/版权声明证明-Shell-if-判断条件种类-300x70.png 300w, https://eternalcenter-may-1-2022.github.io/wp-content/uploads/2020/04/版权声明证明-Shell-if-判断条件种类-768x178.png 768w" sizes="(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /><figcaption>CC 4.0 BY-SA 版权协议网址：https://creativecommons.org/licenses/by-sa/4.0/deed.z</figcaption></figure>



<pre class="wp-block-code"><code>站主补充：
补充一：Shell if 单判断的格式
if &#91; &lt;判断条件&gt; ]; then
&lt;要执行的步骤&gt;
fi

补充二：Shell if 双判断的格式
if &#91; &lt;判断条件&gt; ]; then
&lt;要执行的步骤&gt;
else
&lt;要执行的步骤&gt;
fi

补充三：Shell if 多判断的格式
if &#91; &lt;判断条件&gt; ]; then
&lt;要执行的步骤&gt;

elif
&lt;要执行的步骤&gt;
else
&lt;要执行的步骤&gt;
fi

补充四：Shell if 多条件判断的格式
4.1 与条件的判断
if &#91; &lt;判断条件&gt; -a &lt;判断条件&gt; ]; then
&lt;要执行的步骤&gt;
fi

4.2 或条件的判断
if &#91; &lt;判断条件&gt; -o &lt;判断条件&gt; ]; then
&lt;要执行的步骤&gt;
fi</code></pre>



<p></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
