<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://wiki.linuxtoy.cn/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://wiki.linuxtoy.cn/feed.php">
        <title>LinuxToy - blog:shell</title>
        <description></description>
        <link>http://wiki.linuxtoy.cn/</link>
        <image rdf:resource="http://wiki.linuxtoy.cn/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-05-14T17:11:23+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:shell:01_shell_summary&amp;rev=1738509028&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:shell:02_shell_color_control&amp;rev=1738509028&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:shell:02_shell_variable&amp;rev=1738509028&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:shell:03_shell_cond_and_branch&amp;rev=1738509028&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:shell:04_shell_heredoc&amp;rev=1738509028&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:shell:05_shell_fd_redirection&amp;rev=1738509028&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:shell:06_shell_command_find&amp;rev=1738509028&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.linuxtoy.cn/doku.php?id=blog:shell:07_shell_command_getopt&amp;rev=1738509028&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://wiki.linuxtoy.cn/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>LinuxToy</title>
        <link>http://wiki.linuxtoy.cn/</link>
        <url>http://wiki.linuxtoy.cn/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:shell:01_shell_summary&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>01_shell_summary</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:shell:01_shell_summary&amp;rev=1738509028&amp;do=diff</link>
        <description>Shell使用总结

处理ini格式的配置文件

使用两个函数, inifetch和iniwrite



function ini_fetch()
{
	if [ $# -ne 3 ]; then
		return
	fi
	local file=$1
	local section=$2
	local key=$3

	item=`sed -n '/^\['&quot;$section&quot;'\]/,/^\[/ {/^\['&quot;$section&quot;'\]/b; /^\[/b; /^'&quot;$key&quot;'\s*=.*/ p;}' $file`

	if [ &quot;${item}x&quot; != &quot;x&quot; ]; then
		value=${item#*=}
		echo $value
	fi
}

function ini_write()
{
	if [ $# -ne 4 ]; then
		echo 1
	fi

	local file=$1
	local section=$2
	local key=$3
	local value=$4

	sed -i '/^\['&quot;$section&quot;'\]/,/^\[/ {/^\[…</description>
    </item>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:shell:02_shell_color_control&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>02_shell_color_control</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:shell:02_shell_color_control&amp;rev=1738509028&amp;do=diff</link>
        <description>Shell 终端颜色控制

Shell通过转义字符序列来控制颜色和光标等行为

格式:
echo -e &quot;\033[Attribute code;Frontground color code;Background color code m&quot;
Attribute code, Frontground, Background 是可选的，可以只有其中一个选项
echo -e的目的是让echo识别转移字符
\033是表示escape的八进制表示</description>
    </item>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:shell:02_shell_variable&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>02_shell_variable</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:shell:02_shell_variable&amp;rev=1738509028&amp;do=diff</link>
        <description>Shell变量

位置变量



$command  arg1   arg2  arg3

$0      命令本身（shell文件名）
$1      第1个命令行参数 
$2      第2个命令行参数 
$n      第n个命令行参数


预定义变量



$#      传入脚本的命令行参数的个数
$*      所有命令行参数值，各参数值之间用IFS中的第一个字符分隔开 
$@      与$*类似
$!      上一个后台命令对应的进程号
$?      最近一条命令执行成功后的退出状态 
$$      当前进程号…</description>
    </item>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:shell:03_shell_cond_and_branch&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>03_shell_cond_and_branch</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:shell:03_shell_cond_and_branch&amp;rev=1738509028&amp;do=diff</link>
        <description>Shell 条件与分支

条件判断

	* 数字的判断



[ int1 -eq int2 ] 两数相等为真
[ int1 -ne int2 ] 两数不等为真
[ int1 -gt int2 ] int1大于int2为真
[ int1 -ge int2 ] int1大于等于int2为真
[ int1 -lt int2 ] int1小于int2为真
[ int1 -le int2 ] int1小于等于int2为真</description>
    </item>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:shell:04_shell_heredoc&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>04_shell_heredoc</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:shell:04_shell_heredoc&amp;rev=1738509028&amp;do=diff</link>
        <description>Shell Here Document

Here Documents基本用法

Here Document是一种特殊的代码块, 通常作为一种I/O重定向的方式给命令提供输入
格式如下:



COMMAND &lt;&lt;InputComesFromHERE
...
...
...
InputComesFromHERE


以“&lt;&lt; delimiter”</description>
    </item>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:shell:05_shell_fd_redirection&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>05_shell_fd_redirection</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:shell:05_shell_fd_redirection&amp;rev=1738509028&amp;do=diff</link>
        <description>Shell文件描述符与重定向

基本概念

文件描述符是与文件输入相关联的整数
0   - - -  stdin  标准输入
1   - - -  stdout 标准输出
2   - - -  stdout 标准错误

command &gt;  filename 把command的标准输出重定向到文件中   (先清空文件，再写入)
command</description>
    </item>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:shell:06_shell_command_find&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>06_shell_command_find</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:shell:06_shell_command_find&amp;rev=1738509028&amp;do=diff</link>
        <description>Shell find命令

find [starting-point...] [expression]

从starting-point指定的目录开始查找,
例如:
find ./ -print

从当前目录开始查找，并打印目录和文件列表
-print      打印出匹配文件的文件名, 并使用 \n 作为分隔文件的定界符。
-print0     使用\0作为分隔文件的定界符。</description>
    </item>
    <item rdf:about="http://wiki.linuxtoy.cn/doku.php?id=blog:shell:07_shell_command_getopt&amp;rev=1738509028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-02T15:10:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>07_shell_command_getopt</title>
        <link>http://wiki.linuxtoy.cn/doku.php?id=blog:shell:07_shell_command_getopt&amp;rev=1738509028&amp;do=diff</link>
        <description>Shell getopt命令

getopt用于在shell中解析命令行参数

语法:
getopt [options] [--] optstring parameters
getopt [options] -o|--options optstring [options] [--] parameters

optstring 从第一个非options的参数开始，或者在-- 第一次出现的位置后面</description>
    </item>
</rdf:RDF>
