shell的变量
定义变量的单双引号的不同
输出变量
父子shell
环境变量(全局)可以在父shell里写,子shell里面执行
每次用bash去执行shell文件时,会开启子shell,不会影响当前环境的变量
每次用source去执行shell文件时,就不开启子shell,会影响当前环境的变量
shell子串
BASH
- history命令:
-r 表示恢复历史
- !历史id
shell子串的用法
shell
2.${变量:n} 从数字后面输出
4 . 删除
${变量#xxx} 从前向后 , 删变量里面最短的那个xxx
${变量##xxx} 从前向后 , 删变量里面最长的那个xxx
是*后面必须是结尾的那个数字或字母
${变量%xxx} 从后向前 , 删变量里面的那个xxx
${变量%%xxx} 从后向前 , 删变量里面的那个xxx
5 . 替换字符串
${变量/旧/新} 用于替换第一个遇到的
统计变量长度
3 . echo $#变量 最好
输出程序运行时间
#!/bin/bash
for n in {1..4000}
do
char=`seq -s "*" 5`
echo $#char &>/dev/null
done
#!/bin/bash
for n in {1..4000}
do
char=`seq -s "*" 5`
echo expr length "$char" &>/dev/null
done
结论:
shell扩展变量
用于处理变量值的
1.${变量:-word}
没值返回word,有值返回值
2.${变量:=word}
没值返回word,有值返回值
变量为空就赋值,不空就输出原来的值
3.${变量:?word}
没值返回word,有值返回值
用于提示变量是不是为空
4.${变量:+word}
没值不返回,有值返回word
创建子shell(进程列表)
把命令写在括号里
查看是否开启子shell在运行
echo $BASH_ SUBSHELL 返回0就是没有开启
加一个()就是进入一个子shell , 用于提高程序并发执行
(ll;echo $BASH_ SUBSHELL) 返回1
(ll;(pwd;echo $BASH_ SUBSHELL)) 返回2
(ll;(pwd;(echo $BASH_ SUBSHELL))) 返回3
内置命令,外置命令
用type看是外还是内
外置 : 慢 , 一定会开启子shell
内置 : 系统启动就执行了 , 用compgen –b (或enable)查看哪些是内置的
shell编程总结
1 . {}用于返回变量 , ()和“用于运行命令 ,
echo ${date} 不返回值
原文地址:https://blog.csdn.net/dyjkl/article/details/128436168
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_12353.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!