当前位置:首页 > 嵌入式 > 嵌入式动态
[导读]首先介绍bash7自动交互的三种形式。

首先介绍bash7自动交互的三种形式。

ftp

#!/bin/bash

# 顶格写,EOF后面代码段顶格写

ftp -i -n 192.168.167.187 << EOF

user hzc 123456

pwd

cd test

pwd

close

bye 6189606

EOF

shell自动完成

echo 'pwd' |su - xq -c "pwd"

当提示,standard in must be a tty,可用,python -c ’import pty; pty.spawn(“/bin/sh”)’

expect

见expect

https://mbd.baidu.com/newspage/data/landingshare?pageType=1&isBdboxFrom=1&context=%7B"nid"%3A"news_9074927787774808988"%2C"sourceFrom"%3A"bjh"%7D

登录shell和非登录shell

通过login程序或者bash的--login选项进入bash环境的称为登录shell

非login的或者--login选项进入bash环境的称为非登录shell

非登录shell只会使用 .bashrc 这个环境变量文件

登录shell按照 /etc/profile,.bash_profile, .bash_login, .profile的顺序查找环境变量文件并执行

有些系统会在登录shell的环境变量文件中调用 .bashrc

登录shell退出时会执行 .bash_logout

bash提示符

PS1,PS2

\u 当前用户名

\h 主机名,\H 完整主机名

\W 完整的工作目录

\w 工作目录绝对路径

\$ 提示符,root是#,普通用户是$

\t 时间

\# 显示命令编号

PS2默认为>,需要多行输入的命令提示换行后提示符是>

可用于bash的正则表达式

* 任意长度字符

? 单字符

[a-zA-Z][0-9] 指定范围内任意一个字符

[^a-z] 不在指定范围内的任意字符

*(...) 匹配0个或多个

?(...) 匹配0或一个

+(...) 匹配1个或多个

@(...) 仅匹配一个

!(...) 都不匹配

\{m, \n} 至少m次,至多n次

\{m, \} 至少m次

\{0, n\} 至多n次

\{m\} 正好m次

^x 行以x开头

x$ 以x结尾

^$ 空白行

\

x\> 以x结尾的单词

\(ab\(x\)y\).*\(mn\)\1 引用第1个(匹配到的内容

专用字符集

[:alnum:]* 字母字符和数字字符

[:alpha:] 字母

[:word:] 字母

[:upper:] 大小字母

[:lower:] 小写字母

[:digit:] 数字

[:xdigit:] 16进制

[:ascii:] ASCII字符

[:blank:] 空格和制表符

[:space:] 仅空格

[:cntrl:] 控制字符

[:print:] 可打印字符

[:graph:] 除空白外的可打印字符

[:punct:] 标点

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭