<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SHELL on 随记</title><link>https://blog.liuyi2026.asia/zh/tags/SHELL/</link><description>Recent content in SHELL on 随记</description><generator>Hugo</generator><language>zh</language><lastBuildDate>Tue, 24 Dec 2024 09:46:52 +0800</lastBuildDate><atom:link href="https://blog.liuyi2026.asia/zh/tags/SHELL/index.xml" rel="self" type="application/rss+xml"/><item><title>16-18</title><link>https://blog.liuyi2026.asia/zh/docs/technology/Linux/SHELLlearnLinuxTV_/16-18/</link><pubDate>Tue, 24 Dec 2024 09:46:52 +0800</pubDate><guid>https://blog.liuyi2026.asia/zh/docs/technology/Linux/SHELLlearnLinuxTV_/16-18/</guid><description>&lt;h1 id="向bash脚本添加参数">向bash脚本添加参数&lt;a class="anchor" href="#%e5%90%91bash%e8%84%9a%e6%9c%ac%e6%b7%bb%e5%8a%a0%e5%8f%82%e6%95%b0">#&lt;/a>&lt;/h1>
&lt;h2 id="basic">basic&lt;a class="anchor" href="#basic">#&lt;/a>&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>─ ~/shellTest ly@vmmin 10:37:24
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>╰─❯ cat ./16myscript_cls.sh 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#!/bin/bash&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#e6db74">&amp;#34;You entered the argument: &lt;/span>$1&lt;span style="color:#e6db74">,&lt;/span>$2&lt;span style="color:#e6db74">,&lt;/span>$3&lt;span style="color:#e6db74">, and &lt;/span>$4&lt;span style="color:#e6db74">.&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>结果&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>╭─ ~/shellTest 16s ly@vmmin 10:37:18
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>╰─❯ ./16myscript_cls.sh Linux1 Linux2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>You entered the argument: Linux1,Linux2,, and .&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="示例1">示例1&lt;a class="anchor" href="#%e7%a4%ba%e4%be%8b1">#&lt;/a>&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>╭─ ~/shellTest ly@vmmin 10:41:45
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>╰─❯ cat ./16myscript_cls.sh 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#!/bin/bash&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ls -lh $1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#echo &amp;#34;You entered the argument: $1,$2,$3, and $4.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>╭─ ~/shellTest ly@vmmin 10:41:28
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>╰─❯ ./16myscript_cls.sh /etc
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>total 792K
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>-rw-r--r-- &lt;span style="color:#ae81ff">1&lt;/span> root root 3.0K May &lt;span style="color:#ae81ff">25&lt;/span> &lt;span style="color:#ae81ff">2023&lt;/span> adduser.conf
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>-rw-r--r-- &lt;span style="color:#ae81ff">1&lt;/span> root root &lt;span style="color:#ae81ff">44&lt;/span> Dec &lt;span style="color:#ae81ff">17&lt;/span> 15:26 adjtime
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>-rw-r--r-- &lt;span style="color:#ae81ff">1&lt;/span> root root &lt;span style="color:#ae81ff">194&lt;/span> Dec &lt;span style="color:#ae81ff">23&lt;/span> 22:38 aliases
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>drwxr-xr-x &lt;span style="color:#ae81ff">2&lt;/span> root root 4.0K Dec &lt;span style="color:#ae81ff">23&lt;/span> 22:38 alternatives
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>drwxr-xr-x &lt;span style="color:#ae81ff">2&lt;/span> root root 4.0K Dec &lt;span style="color:#ae81ff">17&lt;/span> 15:24 apparmor
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>drwxr-xr-x &lt;span style="color:#ae81ff">8&lt;/span> root root 4.0K Dec &lt;span style="color:#ae81ff">17&lt;/span> 15:25 apparmor.d
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>drwxr-xr-x &lt;span style="color:#ae81ff">9&lt;/span> root root 4.0K Dec &lt;span style="color:#ae81ff">17&lt;/span> 15:30 apt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>-rw-r----- &lt;span style="color:#ae81ff">1&lt;/span> root daemon &lt;span style="color:#ae81ff">144&lt;/span> Oct &lt;span style="color:#ae81ff">16&lt;/span> &lt;span style="color:#ae81ff">2022&lt;/span> at.deny
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>-rw-r--r-- &lt;span style="color:#ae81ff">1&lt;/span> root root 2.0K Mar &lt;span style="color:#ae81ff">30&lt;/span> &lt;span style="color:#ae81ff">2024&lt;/span> bash.bashrc&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="示例2">示例2&lt;a class="anchor" href="#%e7%a4%ba%e4%be%8b2">#&lt;/a>&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>lines&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">$(&lt;/span>ls -lh $1 | wc -l&lt;span style="color:#66d9ef">)&lt;/span> &lt;span style="color:#75715e">#行计数&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#e6db74">&amp;#34;You hava &lt;/span>&lt;span style="color:#66d9ef">$((&lt;/span>$lines&lt;span style="color:#f92672">-&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span>&lt;span style="color:#66d9ef">))&lt;/span>&lt;span style="color:#e6db74"> objects in the &lt;/span>$1&lt;span style="color:#e6db74"> directory.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#$(($lines-1))这里用到了子shell&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#echo &amp;#34;You entered the argument: $1,$2,$3, and $4.&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>╭─ ~/shellTest ly@vmmin 10:48:06
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>╰─❯ ls -lh logfiles 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>total 12K
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>-rw-r--r-- &lt;span style="color:#ae81ff">1&lt;/span> ly ly &lt;span style="color:#ae81ff">0&lt;/span> Dec &lt;span style="color:#ae81ff">22&lt;/span> 23:07 a.log
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>-rw-r--r-- &lt;span style="color:#ae81ff">1&lt;/span> ly ly &lt;span style="color:#ae81ff">120&lt;/span> Dec &lt;span style="color:#ae81ff">22&lt;/span> 23:17 a.log.tar.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>-rw-r--r-- &lt;span style="color:#ae81ff">1&lt;/span> ly ly &lt;span style="color:#ae81ff">0&lt;/span> Dec &lt;span style="color:#ae81ff">22&lt;/span> 23:07 b.log
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>-rw-r--r-- &lt;span style="color:#ae81ff">1&lt;/span> ly ly &lt;span style="color:#ae81ff">121&lt;/span> Dec &lt;span style="color:#ae81ff">22&lt;/span> 23:17 b.log.tar.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>-rw-r--r-- &lt;span style="color:#ae81ff">1&lt;/span> ly ly &lt;span style="color:#ae81ff">0&lt;/span> Dec &lt;span style="color:#ae81ff">22&lt;/span> 23:07 c.log
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>-rw-r--r-- &lt;span style="color:#ae81ff">1&lt;/span> ly ly &lt;span style="color:#ae81ff">121&lt;/span> Dec &lt;span style="color:#ae81ff">22&lt;/span> 23:17 c.log.tar.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>-rw-r--r-- &lt;span style="color:#ae81ff">1&lt;/span> ly ly &lt;span style="color:#ae81ff">0&lt;/span> Dec &lt;span style="color:#ae81ff">22&lt;/span> 23:15 xx.txt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>-rw-r--r-- &lt;span style="color:#ae81ff">1&lt;/span> ly ly &lt;span style="color:#ae81ff">0&lt;/span> Dec &lt;span style="color:#ae81ff">22&lt;/span> 23:15 y.txt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>╭─ ~/shellTest ly@vmmin 10:48:10
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>╰─❯ ./16myscript_cls.sh logfiles
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>You hava &lt;span style="color:#ae81ff">8&lt;/span> objects in the logfiles directory.&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>head，表示前十行，可以看出total这些被算作一行了，所以上面的shell中-1&lt;/p></description></item><item><title>12-15</title><link>https://blog.liuyi2026.asia/zh/docs/technology/Linux/SHELLlearnLinuxTV_/12-15/</link><pubDate>Mon, 23 Dec 2024 21:03:03 +0800</pubDate><guid>https://blog.liuyi2026.asia/zh/docs/technology/Linux/SHELLlearnLinuxTV_/12-15/</guid><description>&lt;h1 id="functions-函数">functions 函数&lt;a class="anchor" href="#functions-%e5%87%bd%e6%95%b0">#&lt;/a>&lt;/h1>
&lt;p>以&lt;code>update&lt;/code>这个脚本为基础编改&lt;br>
作用&lt;/p>
&lt;ul>
&lt;li>减少重复代码&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>release_file&lt;span style="color:#f92672">=&lt;/span>/etc/os-release
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>logfile&lt;span style="color:#f92672">=&lt;/span>/var/log/updater.log
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>errorlog&lt;span style="color:#f92672">=&lt;/span>/var/log/updater_errors.log
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>check_exit_status&lt;span style="color:#f92672">(){&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> &lt;span style="color:#f92672">[&lt;/span> $? -ne &lt;span style="color:#ae81ff">0&lt;/span> &lt;span style="color:#f92672">]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;An error occured,please check the &lt;/span>$errorlog&lt;span style="color:#e6db74"> file.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">if&lt;/span> grep -q &lt;span style="color:#e6db74">&amp;#34;Arch&amp;#34;&lt;/span> $release_file 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> sudo pacman -Syu 1&amp;gt;&amp;gt;$logfile 2&amp;gt;&amp;gt;$errorlog
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> check_exit_status
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">if&lt;/span> grep -q &lt;span style="color:#e6db74">&amp;#34;Ubuntu&amp;#34;&lt;/span> $release_file &lt;span style="color:#f92672">||&lt;/span> grep -q &lt;span style="color:#e6db74">&amp;#34;Debian&amp;#34;&lt;/span> $release_file 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> sudo apt update 1&amp;gt;&amp;gt;$logfile 2&amp;gt;&amp;gt;$errorlog
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> check_exit_status
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">#默认yes&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> sudo apt dist-upgrade -y 1&amp;gt;&amp;gt;$logfile 2&amp;gt;&amp;gt;$errorlog
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> check_exit_status
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">fi&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h1 id="casestatements">CaseStatements&lt;a class="anchor" href="#casestatements">#&lt;/a>&lt;/h1>
&lt;h2 id="脚本">脚本&lt;a class="anchor" href="#%e8%84%9a%e6%9c%ac">#&lt;/a>&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>╭─ ~/shellTest ly@vmmin 22:32:52
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>╰─❯ cat ./13myscript_cls.sh 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#!/bin/bash&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>finished&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">while&lt;/span> &lt;span style="color:#f92672">[&lt;/span> $finished -ne &lt;span style="color:#ae81ff">1&lt;/span> &lt;span style="color:#f92672">]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;What is your favorite Linux distribution?&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;1 - Arch&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;2 - CentOS&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;3 - Debian&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;4 - Mint&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;5 - Something else..&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;6 - exit&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> read distro;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">case&lt;/span> $distro in 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 1&lt;span style="color:#f92672">)&lt;/span> echo &lt;span style="color:#e6db74">&amp;#34;Arch is xxx&amp;#34;&lt;/span>;;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 2&lt;span style="color:#f92672">)&lt;/span> echo &lt;span style="color:#e6db74">&amp;#34;CentOS is xbxxx&amp;#34;&lt;/span>;;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 3&lt;span style="color:#f92672">)&lt;/span> echo &lt;span style="color:#e6db74">&amp;#34;Debian is bbbxx&amp;#34;&lt;/span>;;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 4&lt;span style="color:#f92672">)&lt;/span> echo &lt;span style="color:#e6db74">&amp;#34;Mint is xxxxsss&amp;#34;&lt;/span>;;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 5&lt;span style="color:#f92672">)&lt;/span> echo &lt;span style="color:#e6db74">&amp;#34;Something els.xxxxx&amp;#34;&lt;/span>;;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 6&lt;span style="color:#f92672">)&lt;/span> finished&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;now will exit&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ;;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> *&lt;span style="color:#f92672">)&lt;/span> echo &lt;span style="color:#e6db74">&amp;#34;you didn&amp;#39;t enter an xxxx choice.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">esac&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">done&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#e6db74">&amp;#34;Thanks for using this script.&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="脚本执行">脚本执行&lt;a class="anchor" href="#%e8%84%9a%e6%9c%ac%e6%89%a7%e8%a1%8c">#&lt;/a>&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>╭─ ~/shellTest ly@vmmin 22:32:11
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>╰─❯ ./13myscript_cls.sh 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>What is your favorite Linux distribution?
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">1&lt;/span> - Arch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">2&lt;/span> - CentOS
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">3&lt;/span> - Debian
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">4&lt;/span> - Mint
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">5&lt;/span> - Something &lt;span style="color:#66d9ef">else&lt;/span>..
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">6&lt;/span> - exit
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Debian is bbbxx
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>What is your favorite Linux distribution?
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">1&lt;/span> - Arch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">2&lt;/span> - CentOS
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">3&lt;/span> - Debian
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">4&lt;/span> - Mint
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">5&lt;/span> - Something &lt;span style="color:#66d9ef">else&lt;/span>..
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">6&lt;/span> - exit
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>u
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>you didn&lt;span style="color:#960050;background-color:#1e0010">&amp;#39;&lt;/span>t enter an xxxx choice.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>What is your favorite Linux distribution?
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">1&lt;/span> - Arch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">2&lt;/span> - CentOS
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">3&lt;/span> - Debian
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">4&lt;/span> - Mint
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">5&lt;/span> - Something &lt;span style="color:#66d9ef">else&lt;/span>..
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">6&lt;/span> - exit
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">6&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>now will exit
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Thanks &lt;span style="color:#66d9ef">for&lt;/span> using this script. &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h1 id="schedulejobs">ScheduleJobs&lt;a class="anchor" href="#schedulejobs">#&lt;/a>&lt;/h1>
&lt;h2 id="作用">作用&lt;a class="anchor" href="#%e4%bd%9c%e7%94%a8">#&lt;/a>&lt;/h2>
&lt;p>脚本在特定时间运行&lt;/p></description></item><item><title>07-10</title><link>https://blog.liuyi2026.asia/zh/docs/technology/Linux/SHELLlearnLinuxTV_/07-10/</link><pubDate>Sat, 21 Dec 2024 12:00:26 +0800</pubDate><guid>https://blog.liuyi2026.asia/zh/docs/technology/Linux/SHELLlearnLinuxTV_/07-10/</guid><description>&lt;h1 id="whileloops">WhileLoops&lt;a class="anchor" href="#whileloops">#&lt;/a>&lt;/h1>
&lt;h2 id="范例">范例&lt;a class="anchor" href="#%e8%8c%83%e4%be%8b">#&lt;/a>&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>myvar&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#小于或者等于10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">while&lt;/span> &lt;span style="color:#f92672">[&lt;/span> $myvar -le &lt;span style="color:#ae81ff">10&lt;/span> &lt;span style="color:#f92672">]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo $myvar
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> myvar&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">$((&lt;/span> $myvar &lt;span style="color:#f92672">+&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span> &lt;span style="color:#66d9ef">))&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> sleep 0.5
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">done&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>运行&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>╭─ ~/shellTest ≡ ly@vmmin 12:10:33
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>╰─❯ ./71myscript_cls.sh 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">6&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">7&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">8&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">9&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">10&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>数字会每隔0.5s就输出一次&lt;br>
对于&lt;code>myvar=$(( $myvar + 1 ))&lt;/code> ，&lt;code>$((expression))&lt;/code>形式表示算数运算，而且其中的空格是可以省略的&lt;/p>
&lt;h2 id="范例2">范例2&lt;a class="anchor" href="#%e8%8c%83%e4%be%8b2">#&lt;/a>&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">while&lt;/span> &lt;span style="color:#f92672">[&lt;/span> -f ~/testfile &lt;span style="color:#f92672">]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;As of &lt;/span>&lt;span style="color:#66d9ef">$(&lt;/span>date&lt;span style="color:#66d9ef">)&lt;/span>&lt;span style="color:#e6db74">,the test file exists.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> sleep &lt;span style="color:#ae81ff">5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">done&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#e6db74">&amp;#34;As of &lt;/span>&lt;span style="color:#66d9ef">$(&lt;/span>date&lt;span style="color:#66d9ef">)&lt;/span>&lt;span style="color:#e6db74">, the test ....has gone missing.&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>用来测试文件是否存在，运行前先新建一下文件&lt;code>touch ~/testfile&lt;/code>
运行一会后把文件删除，如图&lt;br>
&lt;img src="img/ly-20241221124800683.png" alt="" />&lt;/p></description></item><item><title>06ExitCode</title><link>https://blog.liuyi2026.asia/zh/docs/technology/Linux/SHELLlearnLinuxTV_/06ExitCode/</link><pubDate>Sat, 21 Dec 2024 10:25:30 +0800</pubDate><guid>https://blog.liuyi2026.asia/zh/docs/technology/Linux/SHELLlearnLinuxTV_/06ExitCode/</guid><description>&lt;h1 id="意义">意义&lt;a class="anchor" href="#%e6%84%8f%e4%b9%89">#&lt;/a>&lt;/h1>
&lt;p>用来确定代码是否执行成功&lt;/p>
&lt;h1 id="例子">例子&lt;a class="anchor" href="#%e4%be%8b%e5%ad%90">#&lt;/a>&lt;/h1>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>ls -l /misc
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo $? &lt;span style="color:#75715e">#输出2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ls -l ~
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo $? &lt;span style="color:#75715e">#输出0&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>$?&lt;/code>用来显示最近一个命令的状态，&lt;strong>零表示成功，非零表示失败&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>&lt;span style="color:#75715e">#这个例子之前，作者用 sudo apt remove htop 命令把htop删除了&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>package&lt;span style="color:#f92672">=&lt;/span>htop
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install $package
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#e6db74">&amp;#34;The exit code for ....is &lt;/span>$?&lt;span style="color:#e6db74">&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>安装完毕后显示返回0&lt;br>
&lt;img src="img/ly-20241221090730345.png" alt="" />&lt;br>
另一个示例&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>package&lt;span style="color:#f92672">=&lt;/span>notexist
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install $package
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#e6db74">&amp;#34;The exit code for ....is &lt;/span>$?&lt;span style="color:#e6db74">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#执行后显示&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#Reading package lists... Done&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#Building dependency tree... Done&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#Reading state information... Done&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#E: Unable to locate package notexist&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#The exit code for ....is 100&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h1 id="配合if语句">配合if语句&lt;a class="anchor" href="#%e9%85%8d%e5%90%88if%e8%af%ad%e5%8f%a5">#&lt;/a>&lt;/h1>
&lt;h2 id="基本功能">基本功能&lt;a class="anchor" href="#%e5%9f%ba%e6%9c%ac%e5%8a%9f%e8%83%bd">#&lt;/a>&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>package&lt;span style="color:#f92672">=&lt;/span>htop
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install $package
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">if&lt;/span> &lt;span style="color:#f92672">[&lt;/span> $? -eq &lt;span style="color:#ae81ff">0&lt;/span> &lt;span style="color:#f92672">]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;The installation of &lt;/span>$package&lt;span style="color:#e6db74"> success...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;new comman here:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> which $package
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">else&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$package&lt;span style="color:#e6db74"> failed ...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">fi&lt;/span> &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>之前前作者用&lt;code>sudo apt remove htop&lt;/code>又把htop删除了，不过其实不删除也是走的&lt;code> echo &amp;quot;The installation of .....&amp;quot;&lt;/code>这个分支&lt;br>
结果：&lt;/p></description></item><item><title>05If</title><link>https://blog.liuyi2026.asia/zh/docs/technology/Linux/SHELLlearnLinuxTV_/05If/</link><pubDate>Fri, 20 Dec 2024 18:03:12 +0000</pubDate><guid>https://blog.liuyi2026.asia/zh/docs/technology/Linux/SHELLlearnLinuxTV_/05If/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>在shell中，零为真，非零为假。&lt;/p>&lt;/blockquote>&lt;h1 id="if-then-fi">if then fi&lt;a class="anchor" href="#if-then-fi">#&lt;/a>&lt;/h1>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>mynum&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">200&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#[和]前后都要有空格&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">if&lt;/span> &lt;span style="color:#f92672">[&lt;/span> $mynum -eq &lt;span style="color:#ae81ff">200&lt;/span> &lt;span style="color:#f92672">]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;The condition is true.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">fi&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="img/ly-20241220220441993.png" alt="" />&lt;br>
编辑之后，按ctrl + O 保存文件&lt;br>
ctrl + T + Z 保持在后台，&lt;code>fg&lt;/code>+回车 恢复&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mynum&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">200&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#[和]前后都要有空格&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">if&lt;/span> &lt;span style="color:#f92672">[&lt;/span> $mynum -eq &lt;span style="color:#ae81ff">200&lt;/span> &lt;span style="color:#f92672">]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;The condition is true.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">if&lt;/span> &lt;span style="color:#f92672">[&lt;/span> $mynum -eq &lt;span style="color:#ae81ff">300&lt;/span> &lt;span style="color:#f92672">]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;The variable does not equal 200.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">fi&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="img/ly-20241220221311757.png" alt="" />&lt;/p>
&lt;h1 id="else-if">else if&lt;a class="anchor" href="#else-if">#&lt;/a>&lt;/h1>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mynum&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">300&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#[和]前后都要有空格&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">if&lt;/span> &lt;span style="color:#f92672">[&lt;/span> $mynum -eq &lt;span style="color:#ae81ff">200&lt;/span> &lt;span style="color:#f92672">]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;The condition is true.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">else&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;The variable does not equal&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">fi&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="img/ly-20241220221542876.png" alt="" />&lt;/p></description></item><item><title>01-04</title><link>https://blog.liuyi2026.asia/zh/docs/technology/Linux/SHELLlearnLinuxTV_/01-04/</link><pubDate>Fri, 20 Dec 2024 15:28:33 +0000</pubDate><guid>https://blog.liuyi2026.asia/zh/docs/technology/Linux/SHELLlearnLinuxTV_/01-04/</guid><description>&lt;h1 id="意义">意义&lt;a class="anchor" href="#%e6%84%8f%e4%b9%89">#&lt;/a>&lt;/h1>
&lt;p>执行一系列命令&lt;/p>
&lt;h1 id="视频框架">视频框架&lt;a class="anchor" href="#%e8%a7%86%e9%a2%91%e6%a1%86%e6%9e%b6">#&lt;/a>&lt;/h1>
&lt;ol>
&lt;li>介绍，欢迎&lt;/li>
&lt;li>HelloWorld&lt;/li>
&lt;li>变量&lt;/li>
&lt;li>数学函数&lt;/li>
&lt;li>if语句&lt;/li>
&lt;li>退出代码&lt;/li>
&lt;li>while循环&lt;/li>
&lt;li>更新脚本，保持服务器最新状态&lt;/li>
&lt;li>for循环&lt;/li>
&lt;li>脚本应该存储在文件系统哪个位置&lt;/li>
&lt;li>数据流，标准输入、标准输出、标准错误输出&lt;/li>
&lt;li>函数&lt;/li>
&lt;li>case语句&lt;/li>
&lt;li>调度作业（SchedulingJobs）Part1&lt;/li>
&lt;li>调度作业（SchedulingJobs）Part2&lt;/li>
&lt;li>传递参数&lt;/li>
&lt;li>备份脚本&lt;/li>
&lt;/ol>
&lt;h1 id="准备">准备&lt;a class="anchor" href="#%e5%87%86%e5%a4%87">#&lt;/a>&lt;/h1>
&lt;p>需要一台运行Linux系统的计算机（或虚拟机）&lt;/p>
&lt;h1 id="一些基本操作">一些基本操作&lt;a class="anchor" href="#%e4%b8%80%e4%ba%9b%e5%9f%ba%e6%9c%ac%e6%93%8d%e4%bd%9c">#&lt;/a>&lt;/h1>
&lt;h2 id="新建或编辑脚本">新建或编辑脚本&lt;a class="anchor" href="#%e6%96%b0%e5%bb%ba%e6%88%96%e7%bc%96%e8%be%91%e8%84%9a%e6%9c%ac">#&lt;/a>&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>nano myscript.sh&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="内容">内容&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9">#&lt;/a>&lt;/h3>
&lt;p>&lt;img src="img/ly-20241220161539489.png" alt="" />&lt;br>
&lt;strong>ctrl + o 保存，ctrl + x 退出&lt;/strong>&lt;/p>
&lt;h2 id="如何执行脚本">如何执行脚本&lt;a class="anchor" href="#%e5%a6%82%e4%bd%95%e6%89%a7%e8%a1%8c%e8%84%9a%e6%9c%ac">#&lt;/a>&lt;/h2>
&lt;h3 id="权限">权限&lt;a class="anchor" href="#%e6%9d%83%e9%99%90">#&lt;/a>&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#给脚本赋予执行的权限&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo chmod +x myscript.sh&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="执行">执行&lt;a class="anchor" href="#%e6%89%a7%e8%a1%8c">#&lt;/a>&lt;/h3>
&lt;h4 id="执行前查看权限">执行前查看权限&lt;a class="anchor" href="#%e6%89%a7%e8%a1%8c%e5%89%8d%e6%9f%a5%e7%9c%8b%e6%9d%83%e9%99%90">#&lt;/a>&lt;/h4>
&lt;p>&lt;img src="img/ly-20241220161925488.png" alt="" />&lt;/p>
&lt;h4 id="运行">运行&lt;a class="anchor" href="#%e8%bf%90%e8%a1%8c">#&lt;/a>&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>./myscript.sh&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="查看脚本">查看脚本&lt;a class="anchor" href="#%e6%9f%a5%e7%9c%8b%e8%84%9a%e6%9c%ac">#&lt;/a>&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>cat myscript.sh&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h1 id="更多语句的脚本">更多语句的脚本&lt;a class="anchor" href="#%e6%9b%b4%e5%a4%9a%e8%af%ad%e5%8f%a5%e7%9a%84%e8%84%9a%e6%9c%ac">#&lt;/a>&lt;/h1>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>ls
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pwd&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>输出&lt;br>
&lt;img src="img/ly-20241220162310803.png" alt="" />&lt;/p>
&lt;h1 id="shebang">shebang&lt;a class="anchor" href="#shebang">#&lt;/a>&lt;/h1>
&lt;p>告诉系统哪个解释器准备运行脚本(不特别指定的情况)，比如&lt;code>bash ./myscript.sh&lt;/code>就特别指明了用bash运行脚本，所以这里指的是&lt;code>./myscript.sh&lt;/code>这种情况使用的哪个默认解释器&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#e6db74">&amp;#34;Hello World!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#e6db74">&amp;#34;My current working directory is:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#结果中pwd会另取一行跟这里的显式换行没关系， 我猜是echo在最末尾加了\n换行符&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pwd&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="img/ly-20241220164254183.png" alt="" />&lt;/p></description></item></channel></rss>