学习笔记
printf用法
echo "Hello,Shell"
printf "Hello,Shell\n"
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234
printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876
echo "=============print的转义序列================"
printf "a string,no processing:<%s>\n" "A\nB"
printf "a string, no processing:<%s>\n" "A\nB"
test用法
-
字符串测试
# = 等于则为真 # != 不相等则为真 # -z 字符串 字符串的长度为零则为真 # -n 字符串 字符串的长度不为零则为真
str1="libai" str2="hanxin" if test $str1 = $str2 then echo "两个字符串相等" else echo "两个字符串不相等" fi
-
数值测试
-eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。 -ne 检测两个数是否不相等,不相等返回 true。 [ $a -ne $b ] 返回 true。 -gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。 -lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。 -ge 检测左边的数是否大于等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。 -le 检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true。
num1=100 num2=100 if test $[num1] -eq $[num2] then echo '两个数相等!' else echo '两个数不相等!' fi
-
文件测试
# 文件测试 #-e 文件名 如果文件存在则为真 #-r 文件名 如果文件存在且可读则为真 #-w 文件名 如果文件存在且可写则为真 #-x 文件名 如果文件存在且可执行则为真 #-s 文件名 如果文件存在且至少有一个字符则为真 #-d 文件名 如果文件存在且为目录则为真 #-f 文件名 如果文件存在且为普通文件则为真 #-c 文件名 如果文件存在且为字符型特殊文件则为真 #-b 文件名 如果文件存在且为块特殊文件则为真
cd /root if test -e ./test then echo '文件已存在' else echo '文件不存在' fi
#!/bin/bash
echo "Hello World !"
echo "==============================="
cur_dateTime="`date +%Y-%m-%d,%H:%M:%S`"
echo "获取当前时间":$cur_dateTime
#赋值两边不能有空格
name="小王"
echo "姓名":$name
echo "for循环 注意:加花括号是为了帮助解释器识别变量的边界"
for skill in Ada Coffe Action Java; do
echo "I am good at ${skill}Script"
done
echo "只读变量"
test="http://itdfq.com"
readonly test #设置为只读,就不能够进行修改
#test="123"#会报错:script.sh: line 15: test: readonly variable
echo "$test"
# 删除变量
unset name #unset 命令不能删除只读变量
echo "==============字符串================"
#单引号:单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
str='I am is a student'
echo $str
#双引号可以引用字符串众的变量
name1='xiaoming'
str="Hello,I am is \"$name1\"! "
echo "双引号:"$str
#获取字符串长度
string="asdfqweecho ${string:1:4} # 输出 unoo"
echo ${#string}
# 从字符串第 2 个字符开始截取 4 个字符
echo ${string:1:4}
#查找子字符串位置
echo `expr index "$string" d`
运行结果
Hello World !
===============================
获取当前时间:2021-08-11,06:11:55
姓名:小王
for循环 注意:加花括号是为了帮助解释器识别变量的边界
I am good at AdaScript
I am good at CoffeScript
I am good at ActionScript
I am good at JavaScript
只读变量
http://itdfq.com
==============字符串================
I am is a student
双引号:Hello,I am is "xiaoming"!
22
sdfq
3
截图:
学习工具
菜鸟在线编辑器:菜鸟shell在线编译器