shell基础学习
1、
#! /bin/bash
#设置只读变量,只读变量不可修改
myUrl="http://www.baidu.com"
readonly myUrl
#删除变量,unset不能删除只读变量
myUrl1="http://www.sina.com"
unset myUrl1
#运行shell时会同时存在三种变量
#局部变量,环境变量,shell变量
#单引号:单引号中不能有变量,不能有单引号
#双引号:双引号里可以有变量,可以出现转义字符。
your_name="qinjx"
str="Hello,I know your name is \"$your_name\" ! \n"
#拼接字符串
your_name="cye"
greeting="Hello,"$your_name" !"
greeting_1="Hello,$your_name"
echo $greeting $greeting_1
#获取字符串长度
string="abcdefg"
echo ${#string} #输出 7
#提取子字符串,从第二个字符开始截取4个字符。
string="runoob is a great site"
echo ${string:1:4} #输出unoo
#查找子字符串,查找i或者s的位置, 以下脚本中 "`" 是反引号,而不是单引号 "'",
string="runoob is a great company"
echo `expr index "$string" is` #输出8
#数组,定义数组
array_name=(value0,value1,value2,value3)
#读取数组,${数组名[下标]}
valuen=${array_name[n]}
#使用@符号,可以获取数组中的所有元素
echo ${array_name[@]}
#获取数组的长度
length=${#array_name[@]}
#或者
length=${#array_name[*]}
#取得数组单个元素的长度
lengthn=${#array_name[n]}
#shell传递参数,在执行shell脚本向脚本传递参数时,脚本内获取参数的格式为:$n,n为一个数字,1代表执行脚本的第一个参数,2为执行脚本的第二个参数。
echo "shell 传递参数实例"
echo "执行的文件名:$0"
echo "第一个参数为:$1"
echo "第二个参数为:$2"
echo "第三个参数为:$3"
#调用时为
#chmod +x test.sh
#./test.sh 1 2 3
#结果为:
#shell 传递参数实例
#执行的文件名:./test.sh
#第一个参数为:1
#第二个参数为:2
#第三个参数为:3
#输出输入重定向
command > file 将输出重定向到 file。
command < file 将输入重定向到 file。
command >> file 将输出以追加的方式重定向到 file。
n > file 将文件描述符为 n 的文件重定向到 file。
n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m 将输出文件 m 和 n 合并。
n <& m 将输入文件 m 和 n 合并。
"<< tag" 将开始标记 tag 和结束标记 tag 之间的内容作为输
0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)
/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。
$ command > /dev/null 2>&1
2、echo,-n参数可使下一个命令输出不换行
echo -n "The date is: "
date
shell基础学习的更多相关文章
- Shell基础学习小结
0 shell基础概念 Shell是解释性语言,使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象:缺点是它们的效率通常不如编译型语言.Shell命令有本 ...
- shell基础学习系列(一)
打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行. 输入一些代码: #!/bin/bash echo "Hello World !" &qu ...
- Shell基础学习(六) 流程控制
1.if if的语法格式 if conditon then command1 command2 ``` commandn fi 2.if else if conditon then command1 ...
- Shell基础学习(四) echo命令
1.显示普通的字符串 echo "boring" 2.显示转义字符 echo "\"It is a test!\""; 3.read 命令从 ...
- Shell基础学习(三) 传递参数
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 以下实例我们向脚本传递三个参数 ...
- Shell基础学习(二) Shell变量
1.数据类型: 字符串 数组 2.变量的命名规范: 只能以a-z或A-Z开头 中间不能有空格,可以使用_ 不能使用标点符号 不能使用shell的关键字 3.变量类型: 环境变量 局部变量 shell变 ...
- Shell基础学习(一) Shell简介
Shell是什么? Shell是C语言编写的一种程序,用于用户与linux操作系统交互:Shell既是命令语言,又是程序设计语言. Shell脚本是什么? Shell脚本是用Shell编写的脚本程序. ...
- ArchLinux下Shell基础学习
首先来认识脚本语言:通常指的是命令行界面的解析器.(来自维基的解释) 第一部分:认识Shell 大家可以看到这里使用了#!/bin/sh和!/bin/bash.可是俩者有什么区别呢?下图有解释. sh ...
- shell基础学习-难点重点学习
来自shell13问 -e : 啟用反斜線控制字符的轉換(參考下表) -E:關閉反斜線控制字符的轉換(預設如此) -n : 取消行末之換行符號(與 -e 選項下的 \c 字符同意) 要取消一個变量,在 ...
随机推荐
- angular2自学笔记(二)---路由、服务等八大主要构造块
angular的思想:总是把数据访问工作委托给一个支持性服务类. Angular 应用的:用 Angular 扩展语法编写 HTML 模板, 用组件类管理这些模板,用服务添加应用逻辑, 用模块打包发布 ...
- Codeforces 985G. Team Players
Description 有 \(n\) 个人 , \(m\) 对人有冲突 , 你要从这 \(n\) 个人中选出三个人成为一组 , 使得同一组的人不存在一对有冲突 题面 Solution 容斥 答案=总 ...
- tr td 移动变色
jsp <table id="tableList" class="table table-hover"></table> css .t ...
- 一个简单的json解析器
实现一个简单地json解析器. 两部分组成,词法分析.语法分析 词法分析 package com.mahuan.json; import java.util.LinkedList; import ja ...
- 【转】Java面试题全集(上)
准备从C#转java,在找工作之前准备看看面试题,有幸看到大神的作品,mark一下,以后慢慢看... 2013年年底的时候,我看到了网上流传的一个叫做<Java面试题大全>的东西,认真的阅 ...
- GroupBox 分组框控件
GroupBox 控件是由System.Windows.Forms.GroupBox类提供的,作用是为其他控件提供可识别的分组. 可在同一页面,实现多个单选的RadioButton 通常,使用 ...
- JAVA基础之——Thrift原理及应用
1 是什么 是为了解决facebook系统中各系统间大数据量的传输通信,以及系统之间语言环境不同需要跨平台的问题. 是一种实现RPC的软件框架,自定义IDL(Interface description ...
- python学习之老男孩python全栈第九期_day017知识点总结——初识递归、算法
一. 递归函数 如果一个函数在内部调用自身本身,这个函数就是递归函数. 最大递归深度默认是997 -- python从内存角度出发做得限制(而不是程序真的报错),最大深度可以修改 def func(n ...
- String 简单使用
package com.direct.str; public class TestObject { /** * @param args */ /* * 1.object类是根类,里面定义的==和equ ...
- float浮动
float是什么意思?float是浮动,翻译成中文也是浮动意思.进入对应css手册中float手册了解float基本信息. Float常跟属性值left.right.none Float:none 不 ...