shell脚本学习
1、exec命令
An exec <filename command redirects stdin to a file An exec >filename command redirects stdout to a designated file exec 2>filename 将会把执行的命令重定向到文件中
2、shift命令
位置参数可以用shift命令左移。比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。
#!/bin/bash until [ $# -eq 0 ] do echo "First arguments: $1, Count of arguments: $#" shift done
输出:
$ ./param.sh 2 3 9 7 First arguments: 2, Count of arguments: 4 First arguments: 3, Count of arguments: 3 First arguments: 9, Count of arguments: 2 First arguments: 7, Count of arguments: 1
3、变量/参数的个数 $#
4、declare 声明变量,-a声明数组,-i声明整型
#!/bin/bash declare -i a a=3 echo "a = $a" declare -a arr arr='cainiao' arr[1]='dragonfly' echo "arr = ${arr[0]}"
输出
$ ./declare.sh a = 3 arr = cainiao
5、-z 判断字符串为空
#!/bin/bash if [ -z "$1" ]; then echo "First arg is empty" else echo "First argument is $1" fi
输出
$ ./zz.sh First arg is empty $ ./zz.sh fun First argument is fun
6、-f、-d、-s、-r、-w、-x 判断文件/目录存在、非空、可读、可写、可执行
if [ -f file ] 如果文件存在 if [ -d ... ] 如果目录存在 if [ -s file ] 如果文件存在且非空 if [ -r file ] 如果文件存在且可读 if [ -w file ] 如果文件存在且可写 if [ -x file ] 如果文件存在且可执行
7、dpkg安装失败时候处理,提示如下:
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it? E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
把一下命令的输出文件都删除了:
fuser /var/lib/dpkg/lock /var/lib/apt/lists/lock ls -l /var/lib/dpkg/lock /var/lib/apt/lists/lock
8、字符串替换
curl -s $VERSION_URL | tr '\n' ',' | sed 's/,//g
此处假设VERSION_URL返回值带有一个空行,此处会把空行删掉;tr不能直接把\n替换成'',所以看要转一转
相关推荐
huha 2020-10-16
laisean 2020-11-11
大牛牛 2020-10-30
firefaith 2020-10-30
liguojia 2020-10-20
wangzhaotongalex 2020-10-20
以梦为马不负韶华 2020-10-20
JohnYork 2020-10-16
Julyth 2020-10-16
applecarelte 2020-10-16
laisean 2020-09-27
flycappuccino 2020-09-27
liguojia 2020-09-27
wangzhaotongalex 2020-09-22
流年浅滩 2020-10-23
liujianhua 2020-10-22
woaimeinuo 2020-10-21
tufeiax 2020-09-03
laisean 2020-09-01
vvu 2020-09-16
libao 2020-09-16
Yyqingmofeige 2020-08-18
zhushixia 2020-08-17