ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux中shell script的使用

2021-06-30 19:58:05  阅读:188  来源: 互联网

标签:bin sbin shell script data echo usr Linux my


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 ---"

标签:bin,sbin,shell,script,data,echo,usr,Linux,my
来源: https://blog.csdn.net/make_progress/article/details/118368170

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有