echo -n 表示不换行输出
echo -e 输出转义字符,将转义后的内容输出到屏幕上
常用的转义字符如下:
\b 转义后相当于按退格键(backspace),但前提是"\b"后面存在字符;"\b"表示删除前一个字符,"\b\b"表示删除前两个字符。
\c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于 echo -n; 但是当"\c"后面仍然存在字符时,"\c"后面的字符将不会被输出。
\n 换行,被输出的字符从"\n"处开始另起一行。
\f 换行,但是换行后的新行的开头位置连接着上一行的行尾;
\v 与\f相同;
\t 转以后表示插入tab,即横向制表符;
\r 光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时,"\r"前面的字符不会被覆盖
\ 表示插入""本身;
for i in {1…10} {1…10…2}
$(seq 1 10) $(seq 1 2 10)
for ((i=1; i<=10; i++)) ((i=1; i<=10; i+=2))
do
echo $i
done
for ((i=1; i<=10; i++));do echo $i;done
for ((a=1; a<=5; a++))
do
echo “outer loop: $a”
for ((b=1; b<=50; b++))
do
if [ $b -eq 5 ]
then
break
fi
echo “inter loop: $b”
done
done
continue中止某次循环中的命令,但不会完全中止整个命令
for ((a=1; a<=15; a++))
do
if [ $a -gt 5 ] && [ $a -lt 10 ]
then
continue
fi
echo “current value: $a”
done
默认包含 空格,制表符,换行符 set | grep IFS
IFS=$’ \t\n’
修改成只换行
IFS=$’\n’
IFS=:
IFS=’,’
IFS.OLD= I F S I F S = IFS IFS= IFSIFS=’\n’
…
IFS=$IFS.OLD
输出环境变量PATH所包含的所有目录以及其中的所有可执行文件
【1】
function 函数名 {
命令序列
}
【2】
函数名() {
命令序列
}
return表示退出函数并返回一个退出值,脚本中可以用 ? 变 量 显 示 该 值 使 用 原 则 : 1 、 函 数 一 结 束 就 取 返 回 值 , 因 为 ?变量显示该值 使用原则: 1、函数一结束就取返回值,因为 ?变量显示该值使用原则:1、函数一结束就取返回值,因为?变量只返回执行的最后一条命令的退出状态码
2、退出状态码必须是0~255,超出时值将为除以256取余
function db1 {
read -p “请输入:” value
return [ [ [value * 2]
}
db1
echo $?
db1() {
read -p “请输入:” value
echo [ [ [value * 2]
}
result=db1
echo $result
sum() {
s=$[$1 + $2]
echo $s
}
sum $1 $2
函数调用自己本身的函数
fact() {
if [ 1 − e q 1 ] t h e n e c h o 1 e l s e l o c a l t e m p = 1 -eq 1 ] then echo 1 else local temp= 1−eq1]thenecho1elselocaltemp=[ 1 − 1 ] l o c a l r e s u l t = 1 - 1] local result= 1−1]localresult=(fact $temp)
echo $[$1 * KaTeX parse error: Expected 'EOF', got '}' at position 14: result] fi }̲ read -p "请输入:"…(fact $n)
echo $result
vim myfuncs.sh
jiafa() {
echo $[$1 + $2]
}
chengfa() {
echo $[$1 * $2]
}
chufa() {
if [ $2 -ne 0 ];then
echo $[$1 / $2]
else
echo “$2不能为0”
fi
}
vim test.sh
. myfuncs.sh
value1=10
value2=5
result1=jiafa $value1 $value2
result2=chengfa $value1 $value2
result3=chufa $value1 $value2
echo “加法结果为: r e s u l t 1 " e c h o " 乘 法 结 果 为 : result1" echo "乘法结果为: result1"echo"乘法结果为:result2”
echo “除法结果为:$result3”