Shell是一种应用程序,提供一个界面访问操作系统内核的服务.

1:编写shell脚本
vi test.sh
#!/bin/bash #指定这个脚本需要什么解释器来执行
echo "Hello World !" # echo命令用于向窗口输出文本

2:执行shell脚本
cd入文件存在的目录
chmod +x ./test.sh #使脚本具有执行的权限
./test.sh #执行脚本

3:Shell变量的理解
例子: your_name="wangzhi.cn"
注意:变量名和等号之间不能有空格
规则:
(1).首字母必须为字母(a-z,A-Z)
(2).中间不能有空格,可以使用(_)
(3).不能使用标点符号
(4).不能使用bash中的关键字(可以使用help命令查看保留关键字)
例子:for file in `ls /etc` 这个语句可以将/etc下目录的文件名循环出来

4:变量的使用
定义变量:your_name = "wangzhi"
使用变量:echo ${your_name} # 建议输出变量加上{},养成好的编程习惯.


5:Shell字符串(注意注意:下标是从0开始计算的)
单引号:
str = 'This is a string' (限制:
单引号中的任何字符都会原样输出,单引号中无法输出变量;
单引号中不能出现单引号)

双引号:
str = "Hello, I know your are \"${your_name}\"!\n"
(双引号内可以有变量;双引号内可以有转义字符)

字符串拼接:
your_name="qinjx"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1

获取字符串长度:
string="abcd"
echo ${#string} #输出 4

提取字符串
string="alibaba is a great company"
echo ${string:1:4} #输出liba,字符串的下标是从0开始的

查找子字符串(下标从1开始计算)
string="alibaba is a great company"
echo `expr index "$string" is`

#!/bin/bash
your_name="wangzhi"
echo ${your_name}
str='This is a String'
echo "单引号字符串 :${str}" # 拼接都可以这样写,下面的写法是被误导的
str2="Hello, I know you are \"${your_name}\"!\n"
echo "双引号字符串 : \" ${str2}\"\n"
greet="Hello, ${your_name} !"
echo "字符串拼接 : \" ${greet}\"\n"
echo "获取字符串长度 : \"${#greet}\"\n" # 0~length-1,与java中相同
echo "提取字符串 : \"${greet:1:4}\"\n" # 下标从0开始,从1开始计算4个
echo "查找子字符串 : \n"
echo `expr index "${greet} hello"` # 下标是从1开始计算的

6:Shell数组 (可以存放各种数据类型,下标从0开始)
定义:${数组名[下标]} 例如: valuen = ${array_name[n]}
使用@符号可以获取数组中的所有元素,例如:echo ${array_name[@]}

获取数组长度:
# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}

7:注释 只有单行注释----(使用 # 进行注释)

Shell的基本命令(第一天),根据w3c学习得的更多相关文章

  1. shell脚本学习第一课

    shell是一种程序设计语言,是访问操作系统内核的服务. Linux的shell种类常见的有: Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell ...

  2. Shell学习笔记 ——第一天

    1.程序第一行  指定执行Shell的程序 #!/bin/sh #!用来告诉系统它后面的参数是用来执行该文件的程序 2.在控制台输出信息 echo "Hello Shell" #! ...

  3. Shell自学之运算符和echo(W3C)

    上面理论知识,最下面有我做的测试的例子: 10.Shell运算符 expr是一款表达式计算工具,使用它能完成表达式的求值操作 例:val=`expr 2 + 2`;echo "${val}& ...

  4. 【Shell 编程基础第一部分】第一个Shell脚本HelloShell及一些简单的Shell基础书写与概念;

    http://blog.csdn.net/xiaominghimi/article/details/7603000 本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区 ...

  5. Linux Shell 脚本学习第一天: 使用grep 命令,lsusb, ps -ef, 实现树莓派(Debian OS)时检测到依赖的USB设备启动后,启动终端自动执行shell脚本

    1.应用背景: 无人监测的设备,常需要设置应用程序开机启动,程序启动前需要保证调用的设备先启动,运行环境先启动. 2.test.sh部分源码 #!/bin/sh #查看桌面是否启动 while tru ...

  6. Linux - 简明Shell编程01 - 第一个脚本(HelloShell)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash echo "hell ...

  7. Shell - 简明Shell入门01 - 第一个脚本(HelloShell)

    示例脚本及注释 #!/bin/bash echo "hello shell!" # 打印字符串"hello shell!" echo "Date: & ...

  8. Python十讲 - 第一讲:从零开始学Python

    之后慢慢添加... Python语言的背景知识

  9. 第一课 PPT 所学内容总结

    制作PPT时要注意三要素即:图形,颜色搭配,字数适当. 感悟:制作一个好的PPT也并不需要华丽的画面.只需清晰的表达出自己想要表达的,就是一个好PPT.

随机推荐

  1. 关于Unity中如何代码动态修改天空盒

    在Unity中动态修改天空盒有两种方法: 一.为每个Texture建立天空盒材质球,需要更换时直接将对应材质球作为天空盒,缺点是建立的材质球太多 private void ChangeSkybox(M ...

  2. SpringBoot03 项目热部署

    1 问题 在编写springBoot项目时,经常需要修改代码:但是每次修改代码后都需重新启动,修改的代码才会生效 2 这么实现IDEA能够像Eclipse那样保存过后就可以自动进行刷新呢 将sprin ...

  3. SSH相关知识

    SSH(Secure Shell, 安全Shell协议)是一种加密的网络传输协议,经常用于安全的远程登录. SSH只是一种协议,可以有多种实现. OPENSSH是一种应用广泛的实现. sshd是dae ...

  4. gitignore忽略规则

    我们用git提交本地代码时,有些文件或日志是不需要提交的,这个时候可以用.gitignore来解决这个问题: 首先,我们需要创建一个.gitignore文件,用命令输入 touch .gitignor ...

  5. C语言程序设计(基础)最后一次作业-- 总结报告

    本次作业是本学期的最后一次作业,有始有终,本次作业回顾下本学期的第0次作业,回答下面几个问题. 注意:在回答问题时请不要简单的回答 "不是","是".请把这当成 ...

  6. 【alpha冲刺】随笔合集

    Daily Scrum Meeting 第一天 [Alpha]Daily Scrum Meeting第一次 第二天 [Alpha]Daily Scrum Meeting第二次 第三天 [Alpha]D ...

  7. 20162320刘先润第三周Bag类测试

    前言 以下内容是本周Bag代码的课后作业,要求是完成伪代码.产品代码和测试代码,为了书写方便我将伪代码以注释的形式写在了产品代码的后面 测试步骤 1.首先对Bag类引用BagInterface的代码进 ...

  8. 冲刺总结随笔(Alpha)

    冲刺总结随笔 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.项目预期进展及现实进展 项目预期 ...

  9. 深入分析Java Web中的编码问题

    编码问题一直困扰着我,每次遇到乱码或者编码问题,网上一查,问题解决了,但是实际的原理并没有搞懂,每次遇到,都是什么头疼. 决定彻彻底底的一次性解决编码问题. 1.为什么要编码 计算机的基本单元是字节, ...

  10. 深入理解java的static关键字

    static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列 ...