Shell之师徒西天取经--第一天之Shell基础

1、Shell字符串的输出

#!/bin/bash  
echo "Hello World!"   # 输出字符串

2、Shell变量的定义

#!/bin/bash
your_name='xiaohuo'	# 定义变量
echo ${your_name}	# 输出变量  
your_name='fire'	# 更改变量的值
echo ${your_name}	# 输出更改之后的值

3、Shell设置变量为只读

#!/bin/bash
myUrl="https://www.fireitblog.com"
readonly myUrl					# 设置为只读变量
myUrl="https://www.weimeistore.com"		# 无法修改被readonly修饰的变量
echo ${myUrl}  

4、Shell删除变量

#!/bin/bash
myUrl="https://www.baidu.com"
echo ${myUrl}		# 未删除时输出变量
unset myUrl		# 删除变量myUrl
echo ${myUrl}           # 没有输出,为空

5、Shell定义字符串以及对字符串的操作

#!/bin/bash
echo "------------字符串的定义以及使用---------------";
str='this is s string'
echo ${str}

# 当需要输出“、‘符号时,需要使用\对"、’转义,”、‘必须成对出现
your_name='xiaobai'
str="hello \"${your_name}\"!, welcome to shell。\n"	# 此处里面变量不能用',必须用",而且里面的变量修饰也必须是"
str1='hello '${your_name}'!,welcom to shell。\n'        # '不需要转义字符修饰
echo -e ${str}
echo -e ${str1}

echo "---------------对字符串的操作----------------";

# 拼接字符串
your_name="xiaobai"
# 使用双引号拼接
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting  $greeting_1
# 使用单引号拼接
greeting_2='hello, '$your_name' !'
greeting_3='hello, ${your_name} 

:<<EOF
单双引号总结:
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接用。
  双引号的优点:
    双引号里可以有变量
    双引号里可以出现转义字符    
EOF


# 2、获取字符串长度
str="abcd"
echo ${#str}	# 获取字符串的长度

# 3、截取字符串
str="hello shell, I believe you are great language!"
echo ${str:1:4}	# 截取字符串,第一个字符下标的索引值0


# 4、查找字符串
str="hello shell, I believe you are great language!"
echo `expr index "$str" ol` # 查找字符串,查找o或l字符的位置,那个字母先出现计算那个,'`'此符号不是单引号,而是电脑键盘上Tab上面的一个按键

6、Shell参数传递

#!/bin/bash
# shell传递参数(脚本内获取参数的格式为:$n,n代表第几个参数
echo "Shell 传递参数实例"
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";
echo "第四个参数为:$4";

# shell注释单行多采用#注释,多行注释大部分采用:<<EOF 注释内容..... EOF

:<<EOF
$# 传递到脚本的参数个数
$* 以一个单字符显示所有向脚本传递的参数
$$ 脚本运行的当前进程ID
$! 后台运行的最后一个进程ID
$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。例:如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 
$- 显示Shell使用的当前选项,与set命令功能相同
$? 显示最后命令的退出状态,0表示没有错误,其他任何值表明出错
EOF


echo "-----$\#--\$*的使用";
echo "Shell传递参数实例";
echo "第一个参数为:$1";
echo "参数的个数为:$#";
echo "传递的参数作为一个字符串显示:$*";


echo "-----\$*与\$@的区别";
# echo "相同点:都是引用参数";
# echo "不同点:只有使用双引号中才能体现。\"$*\"是将多个参数作为一个参数传递、\"$@\"传入多少个参数就有多少个参数传递";
echo "------\$*演示------";
for i in "$*";do
	echo ${i}
done

echo "------\$@演示-------";
for i in "$@";do
	echo ${i}
done
发布了32 篇原创文章 · 获赞 7 · 访问量 7754

猜你喜欢

转载自blog.csdn.net/adim__/article/details/105108648
今日推荐