Linux中shell script的使用

1 脚本中的命令

# 查看系统环境变量
echo $PATH
​
# 符号$()作用是命令替换,括号中是命令,可以使用“·”(键盘左上角的字符)代替
# 执行ls -l命令
echo 'Current directory' $(ls -l)
# 符号$(())作用是对内容进行计算
# 将变量a和变量b相加
echo $((a+b))
​
# 符号${}作用是变量替换,括号中是变量名
# ${a}和$a的作用相同,代表变量值
echo ${a}
# 字符串截取,截取字符串a的从1到3的字符
# 还有其他截取的方式,请查询相关的即可
# 注意在Ubuntu中的shell script中,下面的命令会出现Bad sulostitution的问题,解决方法:
# 执行 sudo dpkg-reconfigure dash命令,然后选择no即可
echo ${a:1:3}
# 获取字符串长度
${#a}
​
# 重定向 >
# 将当前的列出的数据重定向到my.txt文件中
ls -l > my.txt
# 追加 >>
# 将当前的列出的数据追加到my.txt文件中
ls -l >> my.txt
​
# 标准输入读取
# 输入数据my_data是变量
read my_data
# 打印my_data
echo my_data

2 使用for循环

查找将当前目录中的“mason”目录,并将路径重定向到文件中.

# 在home中创建my_data,用于重定向的目录
mkdir my_data

编写shell script尽量按照标准的格式写,shell script如下:

#!/bin/bash
#
# Program:
#       Read the directory
# History
#       2021-06-29 make_progress
#
​
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
export PATH
​
echo "--- start ---"
echo ""
​
# Output directory
out_dir=""/home/my_data"
# Find the directory of 'mason'
for m_dir in $(find -type d -name 'mason')
do
        echo $m_dir>>$out_dir/'mason.txt'
done
​
echo ""
echo "--- end ---"

3 使用while

使用while读取数据文件的每一行,while常和read配合使用

#!/bin/bash
#
# Program:
#       Read the file
# History
#       2021-06-29 author
#
​
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
export PATH
​
echo "--- start ---"
echo ""
​
# Find the directory of 'mason'
m_data=$(cat '/home/test/my_data.csv')
while read line
do
        echo $line
done<$m_data
​
echo ""
echo "--- end ---"
上一篇:初识 softmax函数


下一篇:另类WebShell监测机制--基于auditd