您的位置:首页 > 运维架构 > Shell

shell学习记录

2016-08-15 20:34 246 查看
</pre><pre code_snippet_id="1831820" snippet_file_name="blog_20160815_1_930458" name="code" class="plain">#!/bin/sh


变量名和等号之间不能有空格:

your_name="runoob.com"

使用一个定义过的变量,只要在变量名前面加美元符号即可:

your_name="qinjx"
echo $your_name
echo ${your_name}


重新定义变量:

my_name="sunteng"
echo $my_name
my_name=123
echo $my_name


只读变量:

my_name="sunteng"
readonly my_name
my_name="stevesun"


删除变量:

my_name="sunteng"
echo $my_name
unset my_name
echo $my_name


shell中单引号内的字符串原样输出,双引号内的字符串能转义、能包含变量:

my_name="sunteng"
echo "your name is \"$my_name\""


拼接字符串:

your_name="qinjx"
greeting="hello,"$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1


获取字符串长度:

string="abcd"
echo ${#string}


提取子字符串:

string="runoob is a great site"
echo ${string:1:4}


反引号内的命令直接执行:

CUR=`pwd`
echo $CUR


数组相关:

array_text=("12" "abd" "dfad" "ewfw")
echo ${array_text[1]}
echo ${array_text[@]}
echo ${#array_text[@]}
echo ${#array_text[*]}
echo ${#array_text[1]}


printf:

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

printf "%d %s\n" 1 "abc"

printf '%d %s\n' 1 "abc"

printf %s abcdef

printf "\n"

printf %s abc def

printf "\n"

printf "%s\n" abc def

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

printf "%s and %d \n"


test命令:

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


流程控制:

a=10
b=20
if [ $a == $b ]
then
echo "a 等于 b"
elif [ $a -gt $b ]
then
echo "a 大于 b"
elif [ $a -lt $b ]
then
echo "a 小于 b"
else
echo "没有符合的条件"
fi
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: