Linux——bash7自动交互

电工技术 4年前 (2022) aysz01
0

首先介绍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:] 标点

版权声明:aysz01 发表于 2022-08-06 17:01:36。
转载请注明:Linux——bash7自动交互 | 鳌游电工

暂无评论

暂无评论...