shell文件创建
文件开始需要有标识行:
#!/bin/sh
变量
定义变量时,变量名不加美元符号($),如:
variableName="value"
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。
使用变量
使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如:
your_name="mozhiyan"
echo $your_name
echo ${your_name}
使用 unset 命令可以删除变量。语法:
unset variable_name
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
下面的例子尝试更改只读变量,结果报错:
#!/bin/bash
myUrl="http://see.xidian.edu.cn/cpp/shell/"
readonly myUrl
myUrl="http://see.xidian.edu.cn/cpp/danpianji/"
字符串替换
${变量/查找/替换值} 一个“/”表示替换第一个,”//”表示替换所有,当查找中出现了:”/”请加转义符”/”表示。
r="origin/xzt/bugfix_alpha/origin/haha"
# 替换第一个origin/为空, 输出:xzt/bugfix_alpha/origin/haha
r=${r/origin\//}
# 替换所有origin/为空,输出:xzt/bugfix_alpha/haha
r=${r//origin\//}
运算符
文档:https://wiki.jikexueyuan.com/project/shell-tutorial/shell-operator.html
** 注意:条件表达式要放在方括号之间,并且要有空格,例如 [b] 是错误的,必须写成 [ b ]。**
if else
# if后面必须要有空格,[]内部两边必须要有空格
if [ a ]
then
echo "true"
else
echo "false"
fi
for
for v in {1..5}
do
echo "Hello, Welcome $v times"
done
for((i = 1; i <= 5; i++))
do
echo "Hello, $i"
done
命令参数
获取命令参数通过1(第一个参数),$2(第二个参数)来获取。
./clean_branch xzt/hhh
# clean_branch全路径
echo $0
# xzt/hhh
echo $1
读取用户输入
# -p: 提示, command: 输入的参数变量,会等待输入
read -p "确定是否执行删除,确认执行输入Y,否则输入N:" command
网友评论