shell程序详细解说 让你快速入门shell编程

shell能做什么

shell只定义了一个非常简单的编程语言,所以,如果你的脚本程序复杂度较高,或者要操作的数据结构比较复杂,那么还是应该使用Python、Perl这样的脚本语言,或者是你本来就已经很擅长的高级语言。因为sh和bash在这方面很弱,比如说:

它的函数只能返回字串,无法返回数组
它不支持面向对象,你无法实现一些优雅的设计模式
它是解释型的,一边解释一边执行,连PHP那种预编译都不是,如果你的脚本包含错误(例如调用了不存在的函数),只要没执行到这一行,就不会报错.

shell程序详细讲解

其中包括 字符串 shell变量 shell打印变量 shell数组 shell流程控制 if判断 for循环 while循环。

#!/bin/sh
#第一行#!/bin/sh 指定脚本解释器,这里是用/bin/sh做解释器的 。(#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行。注意其它 以“#”开头的行就是注释,会被解释器忽略。)

#--------------------------------------------
# 这是一个多行注释:https://www.fffmo.com/1279.html

# 功能:shell程序详细解说
# 特色:让你快速了解shell程序
#--------------------------------------------

cd ~    #切换到当前用户的home目录
mkdir fffmo.com  #创建一个目录fffmo.com
cd fffmo  # :切换到fffmo.com 目录

echo "#################shell变量####################"
your_name="qinjx"  #定义变量 your_name
echo $your_name    #打印变量 your_name


echo "#################shell数组####################"
#定义数组
array=("Hi" "my" "name" "is")

#打印数组的第一个元素 
echo ${array[0]}

#打印数组的所有元素 
echo ${array[@]}

#输出所有数组索引 
echo ${!array[@]}

#移除数组中索引为 2 的元素 
unset array[2]
#在数组中添加 id 为 333 的元素
array[333]="New_element"

echo "#################shell 单引号与双引号####################"
str='this is a string'  # 单引号里的任何字符都会原样输出
str1='$your_name'       # 单引号字符串中的变量是无效的
str2="$your_name"       # 双引号字符串中的变量是有效的
"abc"=="abcd"           # ==用于字符串比较 ,而=用户定义变量 变量传输

echo "#################shell流程控制 if判断 ####################"
#如果cha>900 则打印"这是if例子:"
cha=1000
if(( "$cha" >900 ));then
echo "这是if例子" 
fi

#如果“fffmo.com”文件夹不存在 则创建文件夹fffmo.com,存在则打印 文件夹不存在"
dir=fffmo.com
if [ ! -d "$dir" ];then
mkdir $dir
echo "创建文件夹成功"
else
echo "文件夹已经存在"
fi


echo "#################shell流程控制 for循环 ####################"
# 循环条件,一共循环10次  创建一个fffmo_0…9.txt文件
for ((i=0; i<10; i++)); do
	touch fffmo_$i.txt
done
# 循环体结束

echo "#################shell流程控制 while循环 ####################"
COUNTER=0
while [ $COUNTER -lt 10 ]; do
echo The counter is $COUNTER
let COUNTER=COUNTER+1
done
赞(2) 打赏
特别声明:除特殊标注,本站文章均为原创,遵循CC BY-NC 3.0,转载请注明出处。三伏磨 » shell程序详细解说

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏