Shell脚本编程之Shell命令

1.Shell echo命令

(1)Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出

#!/bin/bash

#Shell echo

#显示普通字符串
echo "It is a test"
echo It is a test

#显示转义字符
echo ""It is a test""

#显示变量
read name
echo "$name It is a test"

#显示换行
echo -e "OK! 
" 
 #-e 开启转义
echo "It is  a test"

#显示不换行
echo -e "OK! c" 
 #-e 开启转义 c 不换行
echo "It is a test"

#显示结果定向至文件
echo "It is a test" > myfile

#原样输出字符串,不进行转义或取变量(用单引号)
echo '$name"'

#显示命令执行结果
echo `date`

运行结果:

***read命令:一个一个词组地接收输入的参数,每个词组需要使用空格进行分隔;如果输入的词组个数大于需要的参数个数,则多出的词组将被作为整体为最后一个参数接收;

read命令:从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合。该命令可以一次读取多个变量的值,变量和输入的值都需要使用空格隔开。在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY

参数说明:

  •  -p 输入提示文字
  •  -n 输入字符长度限制(达到6位,自动结束)
  •  -t 输入限时
  •  -s 隐藏输入内容

read命令实例:

#!/bin/bash
read -p "请输入一段文字:" -n 6 -t 5 -s password
echo  "
password is $password"

运行结果:

2.Shell printf命令:

#shell printf
echo "Hello,shell"
printf "Hello,shell
"

printf "%-10s %-8s %-4s
" 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f
" 郭靖 男 66.1234
printf "%-10s %-8s %-4.2f
" 杨过 男 48.6543
printf "%-10s %-8s %-4.2f
" 郭芙 女 47.9876

#%s %c %d %f都是格式替代符

#%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示>在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。

#%-4.2f 指格式化为小数,其中.2指保留2位小数

#format-string为双引号
printf "%d %s
" 1 "abc"

#单引号与双引号效果一样 
printf '%d %s
' 1 "abc"

#没有引号也可以输出
printf %s abcdef

#格式只指定了一个参数,但多出的参数仍然会按照该格式输出,format-string 被重用
printf %s abc def

printf "%s
" abc def

printf "%s %s %s
" a b c d e f g h i j

#如果没有 arguments,那么 %s 用NULL代替,%d 用 0 代替
printf "%s and %d 
"

 运行结果:

3.printf的转义序列:

printf的转义序列实例:

printf "a string,no processing:<%s>
" "A
B"

printf "a string,no processing:<%b>
" "A
B"

printf "www.cnblog.com a"

运行结果:

4.Shell test命令:test命令用于检查某个条件是否成立,它可以进行数值,字符和文件三个方面的测试

(1)数值测试

数值测试实例:

num1=100
num2=200
if test $[num1] -eq $[num2]
then
 echo '两个数相等!'
else
 echo '两个数不相等!'
fi

a=5
b=6

result=`expr $a + $b`
echo "result 为: $result"

 运算结果:

(2)字符串测试:

字符串测试实例:

num1="ru1noob"
num2="runoob"
if test $num1 = $num2
then
  echo "两个字符串相等!"
else
  echo "两个字符串不相等!"
fi

运行结果:

(3)文件测试:

文件测试实例:

cd /bin
if test -e ./bash
then
 echo '文件已存在!'
else
 echo '文件不存在!'
fi

运行结果:

Shell还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为:"!"最高,"-a"次之,"-o"最低

cd /bin
if test -e ./notFile -o -e ./bash
then
 echo '至少有一个文件存在!'
else
 echo '两个文件都不存在'
fi

运行结果:

原文地址:https://www.cnblogs.com/hqutcy/p/8656662.html