Bash脚本相关
Bash脚本相关
shell脚本是可以直接在linux下执行的脚本,因为linux应该都有shell。
shell有很多种,这里只记一些Bash相关的脚本信息。
Bash脚本官方文档: https://www.gnu.org/software/bash/manual/bash.html
简单示例
这里的教程一般足够我用了: https://www.runoob.com/linux/linux-shell.html
一个helloworld例子:
#!/bin/bash
echo "Hello World !"
一个if举例:
#!/bin/bash
echo "Guess the secret color"
read COLOR
if [ $COLOR = "purple" ]
then
echo "You are correct."
else
echo "You are wrong."
fi
很简单的if,最重要的是 [ $COLOR = "purple" ]
方括号必须要有空格,等号两边必须要有空格
出错即退出
如果想让某条命令执行出错后立即退出脚本,可以这样写:
#!/bin/bash
set -o errexit
echo 1
ehco 2
echo 3
中间的ehco 2
拼错了,而且设置了出错即退出,所以只会输出1
参考链接: https://my.oschina.net/u/2409113/blog/490833
变量声明 写文件
#!/bin/bash
set -o errexit
# 变量名和等号之间不能有空格
the_path="/home/hello/Desktop/log.txt"
date >> $the_path
echo -e "\n" >> $the_path
函数
#!/bin/bash
set -o errexit
greet() {
echo "Hello ${1}"
}
greet World
参考链接: https://opensource.com/article/21/3/input-output-bash
必须有sudo权限才执行
不一定是root用户执行,这里指的是root权限,只要有sudo权限就可以
#!/bin/bash
# check if start with root
if [ "$EUID" -ne 0 ]; then
echo 'This script must be run as root'
exit 1
fi
参考链接: https://github.com/doomedraven/Tools/blob/master/Virtualization/kvm-qemu.sh
使用IFS拆分内容
用python拆分内容(或者说拆分字符串)很容易,Bash需要用到 IFS 环境变量
IFS, Internal Field Separator, 内部字段分隔符
in
后面必须是变量或语句,不能直接是字符串
#!/bin/bash
the_str="morning,afternoon,evening"
IFS=$','
for word in $the_str
do
echo $word
done
参考链接: https://blog.csdn.net/laoding1993/article/details/50764478
有些东西,分享就好