首页 > 代码库 > shell 杂碎命令整理
shell 杂碎命令整理
1. echo 参数
- -n 不换行(默认换行)
- -e 使得转移字符有效
例子
ss=‘abc\n‘echo -e $ssabc #换行起作用echo $ssabc
2. 赋值时候=左右两侧不要带空格
a = "hello" #错误a="hello"
3. shell运算
b=4let "c=$b+1"echo $c
4. 单引号和双引号区别
单引号和双引号一样都是字符串的界定符,而不是字符的界定符。单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外。
举例
bb="hello"echo "$bb"helloecho ‘$bb‘$bb
注意ecoh -e ‘$bb‘ 结果还是$bb,因为‘$bb‘就是字面值,不会转义。
5. 数组
5.1 声明、定义
- array[‘a‘]=1
- array=(‘a‘, ‘b‘)
- array=([1]=‘a‘ [2]=‘b‘)
5.2 访问
- echo ${array[‘a‘]}
- echo ${array[0]}
5.3 遍历
for var in ${array[*]}do echo $vardone
5.4 数组长度
num=${#array[@]}
对比:获取字符串长度:num=${#str}
6. Linux shell实现多线程
for ((i=0;i<5;i++)); do{ sleep 3; echo "hello" $i}donewait
对比
for ((i=0;i<5;i++)); do{ sleep 3; echo "hello" $i}&donewait
这个在上面的基础上多加了一个后台执行&符号,此时5个循环任务并发执行,最后需要3s多一点的时间(效果非常明显)。wait的作用是完成后台所有的任务后才往下执行,否则程序本身会等待。
7. 去除一行最后的‘\r‘
字符串最后有个‘\r‘是非常恶心的,可以通过tr命令去掉
a="hello\r"echo $a | tr -d ‘\r‘hello\recho $a | tr -d "\r"hello\recho -e $a | tr -d ‘\r‘hello #转移字符起作用echo -e $a | tr -d "\r"hello
8. 编译shell文件
bash -x ***.sh
+开头的是编译的中间过程,不带+的为正常的输出。效果非常明显。
shell 杂碎命令整理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。