1. name="123"
标准的输出变量为 ${name}, $name可能会引起错误,但也可以使用
2. 单引号为强引用, 变量替换会被禁止
echo '$name', 输出为
name
3. 双引号为强引用, 不会禁止变量替换
echo '$name'
123
4. 对数值型变量赋值使用let
let "index=1"
let "index+=index+1"
5. unset [-v] 删除指定变量 -v 是默认选项,可省略
6. unset -f func 删除函数
7. 向函数传递参数
"$#" 参数个数
"$@" 参数集合
8. 管道与重定向
a. > 改变标准输出 echo "ddd" > /tmp/a.txt
b. < 改变标准输入 cat < /tmp/a.txt > /tmp/b.txt 复制a.txt内容到b.txt
c. >> 追加文件 echo "dd" >> /tmp/b.txt
d. | 建立管道
9. /dev/null
可以把它想象为一个黑洞, 它非常接近于一个只写文件,所有写入它的内容都会丢失,而如果从它那儿读取内容,则什么也读不到。
cat /tmp/b.txt > /dev/null 2>/dev/null
读取的内容输出的 dev/null, 错误页输出到/dev/null
1> 重定向标准输出
2> 重定向标准错误
0< 重定向标准输入
&> 重定向标准输出和标准错误
ln -s /dev/null ~/.mozilla/cookies 所有的cookie都会被扔到黑洞, 不会再保存cookie到我们的磁盘了
10. grep -v : 显示所有与制定模式不匹配的行
ps -ef|grep -v "\<grep\>"|grep com.core|awk '{print $2}'
标准的输出变量为 ${name}, $name可能会引起错误,但也可以使用
2. 单引号为强引用, 变量替换会被禁止
echo '$name', 输出为
name
3. 双引号为强引用, 不会禁止变量替换
echo '$name'
123
4. 对数值型变量赋值使用let
let "index=1"
let "index+=index+1"
5. unset [-v] 删除指定变量 -v 是默认选项,可省略
6. unset -f func 删除函数
7. 向函数传递参数
"$#" 参数个数
"$@" 参数集合
testfunc(){
echo "参数个数: $#"
echo "参数为: $@"
for i in "$@" ....
}
./testfunc.sh a,b,c
8. 管道与重定向
a. > 改变标准输出 echo "ddd" > /tmp/a.txt
b. < 改变标准输入 cat < /tmp/a.txt > /tmp/b.txt 复制a.txt内容到b.txt
c. >> 追加文件 echo "dd" >> /tmp/b.txt
d. | 建立管道
9. /dev/null
可以把它想象为一个黑洞, 它非常接近于一个只写文件,所有写入它的内容都会丢失,而如果从它那儿读取内容,则什么也读不到。
cat /tmp/b.txt > /dev/null 2>/dev/null
读取的内容输出的 dev/null, 错误页输出到/dev/null
1> 重定向标准输出
2> 重定向标准错误
0< 重定向标准输入
&> 重定向标准输出和标准错误
ln -s /dev/null ~/.mozilla/cookies 所有的cookie都会被扔到黑洞, 不会再保存cookie到我们的磁盘了
10. grep -v : 显示所有与制定模式不匹配的行
ps -ef|grep -v "\<grep\>"|grep com.core|awk '{print $2}'