Shebang
在windows中脚本为*.bat
文件,Liunx脚本为*.sh
文件。
脚本执行
- 文件没有可执执行权限或未添加Shebang:
bash script.sh
或sh script.sh
。 - 文件有可执行权限:
./script.sh
即以相对路径或绝对路径执行。 source script.sh
或. script.sh
两种方式等价。- 较少用的方式:
sh < script.sh
将数据流写入sh
或bash
。
cat /tec/shells
echo $SHELL
数据类型
shell脚本是弱类型语言,
name="老王" # 变量后面不能有空格,且无需申明类型
# 引用变量
echo $name
echo ${name}
特殊变量
# 参数变量
$0 #脚本文件名和脚本路径
$1...$n # 参数
$# # 参数个数
$* # 获取所有参数,将所有参数保存为一个整体
$@ # 获取所有参数,参数独立保存
# 状态变量
$? # 上条命令是否执行成功
$$ # 当前脚本进程号
$! # 上次后台进程的PID
$_ # 上次命令的最后一个参数
引号
# 单引号不能识别特殊字符
name2='$name' # $name
# 双引号可以识别特殊字符
name3="$name" # 老王
# 反引号,将代码的结果保存下来
name=`ls`
会话
history
# 查看历史命令
history
# 查看最大数量
echo $HISTSIZE
# 清空历史命令
history -c
# 恢复历史命令
history -r
# 调用历史记录命令 !+id
!3006
# 执行上次命令
!!
sudo !!
线程
# 开启子线程
bash
# 退出子线程
quit
# 查看线程数
pstree
# bash执行命令会开启子线程
bash script.sh
# 使用source或者.则不会开启子线程
source script.sh
环境变量
检查环境变量
环境变量可以在shell中临时创建,退出即丢失,想永久生效,可以添加到配置文件中。
找到某个环境变量
export |gerp 变量名
基本内置命令
echo
-n 不换行输出
-e 解析字符串中的特殊字符
eval
执行多个命令
eval ls;cd www
exec
子串
${变量} # 变量值
${#变量} # 变量长度
${变量:start} # 从索引后截取子串,如${name:2}
${变量:start:length}
${变量#word} # 从变量开头删除最短匹配的word子串
${变量##word} # 删除最长匹配的word子串
${变量%word} # 从后向前删
${变量%%word}
${变量/pattern/string}# string代替第一个pattern
${变量//pattern/string}# string代替所有的pattern
原文地址:https://blog.csdn.net/weixin_50232758/article/details/134679248
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_5815.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。