本文为Bash Scripting Full Course 3 Hours学习笔记
(此基础上补充)
(base) lighthouse@VM-8-2-ubuntu:~$ cat /etc/shells # 所有可用shell
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/tmux
/usr/bin/screen
(base) lighthouse@VM-8-2-ubuntu:~$ which bash
/usr/bin/bash
多行注释和多行提示
多行注释 invisible
多行提示 visible
条件语句
注意
① 前后空格
②$
③ [-eq -gt -lt] 等同于((= > <))
le小于等于<=
④[] && || [] 等同于 (()) && || (()) 等同于 括号(([ -a -o 反括号
习惯语句:
<<BLOCK
if [ $count -eq 10 ]
then
echo 'T'
else
echo 'F'
fi
BLOCK
if (( $count > 7 )) && (( $count < 12))
then
echo 'T'
elif (( $count > 29)) || (( $count < 3))
then
echo 'T`'
else
echo 'F'
fi
循环
while until
for
for
if break/continue
(( = ))
attempted assignment to non-variable
? ((==))
bash脚本输入
NB: $ 在变量操作括号外 如 n=$(n-1) echo ${args[1]}
按行读取文件
Bash读取文件read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据。
bash脚本输出
export
send output from one script to another script
字符串操作
区别于前 数值操作
数值操作
声明变量
declare
对变量进行限制
Arrays
联系前面bash脚本输入array
函数
函数构造形式类似R
bash中变量输入通过输入位次来决定 $1 $…
发送邮件
我在想是否在每次nohup & 结束后通过邮件把log发给我自己
值得探索
web文件下载
curl
professional menu
交互选择 select opttion + case loop
交互“按任意键退出” read -t -3 -n 1 # -t每三秒 -n 参数设置 read 命令计数输入的字符
inotify
监控目录文件夹行为
grep、awk、sed
(注意read 可读取整行输入 且不需$ 如$1 $2等)awk像一门单独的编程语言
sed