Shell字符串以及赋值学习

学习笔记

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在线编译器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ITdfq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值