shell,linux中的编程语言,完成自动化任务,Bash是linux多个发行版本的默认shell
安装一个新的shell,sudo yum install ksh
shell脚本依赖于某一个shell,切换sh,chsh
创建脚本文件
vim test.sh
指定选择的shell
#!/bin/bash
chmod +x test.sh
运行shell脚本
./test.sh
调试脚本
bash -x test.sh
切换sh,chsh
shell中的变量
#!/bin/bash
message=‘hello world‘
message=$‘it\‘s me‘
echo $message
echo "the message is $message"
message=`pwd`
echo message
echo,显示信息,在终端中显示信息,-e参数,解析转义字符,双引号不会忽略$符号,反引号能输出命令
read,请求输入
-p,显示提示信息
#!/bin/bash
read -p ‘please enter your name‘ name
echo "hello $name"
-n,限制字符数目
-s,隐藏输入内容
bash数字运算,let命令
#!/bin/bash
let "a=5"
let "b=2"
let "c=a+b"
echo "c=$c"
env命令查看所有环境变量,
SHELL变量;PATH,环境变量路径;HOME,家目录;PWD,目前所在目录;...
#!/bin/bash
echo "your default shell is $SHELL"
参数变量
#!/bin/bash
echo "you have executed $0, there are $# parameters"
echo "the first parameter is $1"
shift命令,移动参数,常被用在循环中,使得参数一个接一个处理
数组
#!/bin/bash
array=(‘value0‘ ‘value1‘ ‘value2‘)
echo ${array[2]}
条件
#!/bin/bash
name1=‘a’
name2=‘b‘
if [ $name1 = $name2 ]
then
echo ‘you have the same name‘
(else、elif)
fi
测试字符串
$string1=$string2,两个字符串是否相等
$string1!=$string2,是否不等
-z $string,字符串是否为空
-n $string 字符串是否不为空
测试数字
$num1 eq $num2,数字是否相等;-ne,是否不相等;-gt,是否大于;
测试文件
-e $file,是否存在这个文件;-d,文件是否一个目录;-f,是否是一个文件;-L,文件是否一个链接文件;-r,文件是否可读
循环语句
while循环
while [ 条件测试 ]
do
something
done
util循环、for循环
for animal in ‘dog‘ ‘cat‘ ‘pig‘
do
echo "animal being analyzed:$animal"
done
seq命令
for i in `seq 1 10`
do
echo $i
done
shell函数
函数的定义
函数名(){
}
function 函数名{
}
#!/bin/bash
print_something(){
echo "hello, i am a function"
}
print_something
print_something
local关键字,局部关键字
command关键字,重载命令
原文:https://www.cnblogs.com/xxp17457741/p/12505809.html