first commit

This commit is contained in:
iProbe 2022-10-18 16:59:37 +08:00
commit ba848e218d
1001 changed files with 152333 additions and 0 deletions

View file

@ -0,0 +1,165 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="tool" content="leanote-desktop-app">
<title>shell中的特殊替换结构</title>
<style>
*{font-family:"lucida grande","lucida sans unicode",lucida,helvetica,"Hiragino Sans GB","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;}
body {
margin: 0;
}
/*公用文字样式*/
h1{font-size:30px}h2{font-size:24px}h3{font-size:18px}h4{font-size:14px}
.note-container{
width:850px;
margin:auto;
padding: 10px 20px;
box-shadow: 1px 1px 10px #eee;
}
#title {
margin: 0;
}
table {
margin-bottom: 16px;
border-collapse: collapse;
}
table th, table td {
padding: 6px 13px;
border: 1px solid #ddd;
}
table th {
font-weight: bold;
}
table tr {
background-color: none;
border-top: 1px solid #ccc;
}
table tr:nth-child(2n) {
background-color: rgb(247, 247, 249);
}
.mce-item-table, .mce-item-table td, .mce-item-table th, .mce-item-table caption {
border: 1px solid #ddd;
border-collapse: collapse;
padding: 6px 13px;
}
blockquote {
border-left-width:10px;
background-color:rgba(128,128,128,0.05);
border-top-right-radius:5px;
border-bottom-right-radius:5px;
padding:15px 20px;
border-left:5px solid rgba(128,128,128,0.075);
}
blockquote p {
margin-bottom:1.1em;
font-size:1em;
line-height:1.45
}
blockquote ul:last-child,blockquote ol:last-child {
margin-bottom:0
}
pre {
padding: 18px;
background-color: #f7f7f9;
border: 1px solid #e1e1e8;
border-radius: 3px;
display: block;
}
code {
padding: 2px 4px;
font-size: 90%;
color: #c7254e;
white-space: nowrap;
background-color: #f9f2f4;
border-radius: 4px;
}
.footnote {
vertical-align: top;
position: relative;
top: -0.5em;
font-size: .8em;
}
hr {
margin:2em 0
}
img {
max-width:100%
}
pre {
word-break:break-word
}
p,pre,pre.prettyprint,blockquote {
margin:0 0 1.1em
}
hr {
margin:2em 0
}
img {
max-width:100%
}
.sequence-diagram,.flow-chart {
text-align:center;
margin-bottom:1.1em
}
.sequence-diagram text,.flow-chart text {
font-size:15px !important;
font-family:"Source Sans Pro",sans-serif !important
}
.sequence-diagram [fill="#ffffff"],.flow-chart [fill="#ffffff"] {
fill:#f6f6f6
}
.sequence-diagram [stroke="#000000"],.flow-chart [stroke="#000000"] {
stroke:#3f3f3f
}
.sequence-diagram text[stroke="#000000"],.flow-chart text[stroke="#000000"] {
stroke:none
}
.sequence-diagram [fill="#000"],.flow-chart [fill="#000"],.sequence-diagram [fill="#000000"],.flow-chart [fill="#000000"],.sequence-diagram [fill="black"],.flow-chart [fill="black"] {
fill:#3f3f3f
}
ul,ol {
margin-bottom:1.1em
}
ul ul,ol ul,ul ol,ol ol {
margin-bottom:1.1em
}
kbd {
padding:.1em .6em;
border:1px solid rgba(63,63,63,0.25);
-webkit-box-shadow:0 1px 0 rgba(63,63,63,0.25);
box-shadow:0 1px 0 rgba(63,63,63,0.25);
font-size:.7em;
font-family:sans-serif;
background-color:#fff;
color:#333;
border-radius:3px;
display:inline-block;
margin:0 .1em;
white-space:nowrap
}
.toc ul {
list-style-type:none;
margin-bottom:15px
}
</style>
<!-- 该css供自定义样式 -->
<link href="../leanote-html.css" rel="stylesheet">
</head>
<body>
<div class="note-container">
<h1 class="title" id="leanote-title">shell中的特殊替换结构</h1>
<div class="content-html" id="leanote-content"><p>A,${var:-string}和${var:=string}<br>若变量var为空则用在命令行中用string来替换${var:-string}否则变量var不为空时则用变量var的值来替换${var:-string}<br>如:&nbsp;<br>$ echo $newvar</p><p>$ echo ${newvar:-a}&nbsp;<br>a&nbsp;<br>$ echo $newvar ###变量newvar的值仍然是空但上一命令行中${newvar:-a}被替换成了a</p><p>$ newvar=b&nbsp;<br>$ echo ${newvar:-a} ###变量newvar的值不为空时此命令行中的${newvar:-b}被替换为$newvar即b&nbsp;<br>b&nbsp;<br>$</p><p>对于${var:=string}的替换规则和${var:-string}是一样的,所不同之处是${var:=string}若var为空时用string替换${var:=string}的同时把string赋给变量var</p><p><br>$ echo $newvar</p><p>$ echo ${newvar:=a}&nbsp;<br>a&nbsp;<br>$ echo $newvar ###变量newvar被赋值为a同时${newvar:=a}被替换成a&nbsp;<br>a&nbsp;<br>$ echo ${newvar:=b} ###变量newvar不为空(其值已被赋为a),则${newvar:=b}被替换为newvar的值(即b)<br>a&nbsp;<br>$ echo $newvar&nbsp;<br>a</p><p>${var:=string}很常用的一种用法是,判断某个变量是否赋值,没有的话则给它赋上一个默认值。<br>如设置默认的编辑器:&nbsp;<br>PHP 代码:<br>echo You use editor: ${EDITOR:=/bin/vi}</p><p>B,${var:+string}<br>${var:+string}的替换规则和上面的相反即只有当var不是空的时候才替换成string若var为空时则不替换或者说是替换成变量 var的值即空值。(因为变量var此时为空所以这两种说法是等价的)&nbsp;<br>$ echo $newvar&nbsp;<br>a&nbsp;<br>$ echo ${newvar:+b}&nbsp;<br>b&nbsp;<br>$ echo $newvar&nbsp;<br>a&nbsp;<br>$ newvar=&nbsp;<br>$ echo ${newvar:+b}</p><p>$</p><p>C,${var:?string}<br>替换规则为若变量var不为空则用变量var的值来替换${var:?string}若变量var为空则把string输出到标准错误中并从脚本中退出。我们可利用此特性来检查是否设置了变量的值。&nbsp;<br>$ newvar=&nbsp;<br>$ echo ${newvar:?没有设置newvar的值}&nbsp;<br>bash: newvar: 没有设置newvar的值&nbsp;<br>$ newvar=a&nbsp;<br>$ echo ${newvar:?没有设置newvar的值}&nbsp;<br>a&nbsp;<br>$</p><p>补充扩展在上面这五种替换结构中string不一定是常值的可用另外一个变量的值或是一种命令的输出。&nbsp;<br>$ echo ${var:-`date`}&nbsp;<br>日 3月 6 02:10:39 CST 2005&nbsp;<br>$ echo ${var:-$(date)}&nbsp;<br>日 3月 6 02:11:46 CST 2005&nbsp;<br>$ a=test&nbsp;<br>$ echo ${var:-$a}&nbsp;<br>test&nbsp;<br>$</p><p><br></p></div>
</div>
<!-- 该js供其它处理 -->
<script src="../leanote-html.js"></script>
</body>
</html>