[Linux]shell编程基础/linux基础入门
#!/bin/bash
用来告诉系统使用/bin/bash 程序来执行该脚本。譬如python 脚本,可以这样写:
#!/usr/bin/python
赋值公式:
变量名=值
取一个变量的值的时候,需要在变量名前面加上$ 符号,譬如:
var="hello bash"
echo $var
如果出现拼接,而且又没有空格为分隔符,这个时候就需要使用大括号将变量括住,如:
num=
echo "this is the ${num}th"
其输出结果为:this is the 3th
shell默认下是进行字符串操作的。所以如果要计算的话就不能这么使用了
var=
var=$var+
echo $var
其输出结果为:1+1
对于数值计算的话有下面的方法
var=
let "var+=1" # let表示数学运算
var="$[$var+1]" # $[]表示对括号内的表达式进行数学运算,与(())感觉概念是一样的
((var++))
var=$(($var+))
var="$(expr "$var" + 1)" # expr表示整数运算
var="`expr "$var" + 1`"
if语句
if ...; then
...
elif ...; then
...
else
...
fi
一些常见的判断
[ -f "file_path" ] # 判断文件是否存在
[ -x "file_path" ] # 判断文件是否具有可执行权限
[ -n "$var" ] # 判断$var变量是否存在
[ "$var1" = "$var2" ] # 判断$var1和$var2是否相等
[]用来表示条件测试。注意空格,括号前后都需要空格。
&&和||
跟其它大部分语言一样,&&和||的意思都是差不多的。
&&:如果第一个条件为ture则检查第二个条件/执行第二条语句;
||:如果第一个条件为false则检查第二个条件/执行第二条语句;
所以就可以这么用了:
[ -r "${file_path}" ] || { echo "Cannot read ${file_path}";exit ; }
意思是,如果文件不可读,则打印错误信息,并退出。
case语句
case是一个用来匹配字符串的表达式,不是数字哦。
case表达式
case ... in
...)
...;;
esac
例子
#!/bin/bash case "$1" in
"")
echo ;;
"")
echo "two";;
*)
echo "your input is $1";;
esac
循环
while表达式
while ...; do
...
done
for表达式
for var in ...; do
...
done
这两个表达式都比较简单,没啥需要特别说明的。我发现不同的系统之间有些差异。我发现红帽是可以使用下面的表达式的,但是Debian却不可以。不知道是系统版本引起还是系统本身存在差异的缘故,我没有深究这个。
for ((i=;i++;i<)); do
... done
function_name(){
#body of function
}
函数无论对于任何语言来说都是需要最基本掌握的。Shell的函数只需要在调用之前定义就好了。跟C语言一样,但不需要声明,跟C语言还是有区别的。
Shell函数定义的时候不用写形参。调用的时候按照空格隔开多个参数传入就可以了。然后使用$1、$2、$3...这些参数来调用。
下面是一个简单的递归调用例子:
#!/bin/bash recursion(){
echo $;
if [ "$1" -eq "" ]; then
echo "done"
else
recursion $(($-))
fi
}
echo "start";
recursion ;
[Linux]shell编程基础/linux基础入门的更多相关文章
- Linux shell编程命令-Linux基础环境命令学习笔记
1.正则表达式 1)^开始 *前一个字符重复0次以上 + 1次以上 ? 0次或者1次 . 一个任意字符(.*连用) {m,n} m到n次 [0-9][a-z] 任意数字或字母 $结束字符 2)sed和 ...
- Linux Shell编程参考大全
本文记录Linux Shell编程中常用基本知识,方便快速入门以及查询使用. 本文主要分为以下几个部分: 一.Shell中的变量 任何编程语言中,有关变量的定义,作用范围,赋值等都是最最基础的知识. ...
- linux —— shell 编程(文本处理)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...
- linux —— shell 编程(编程语法)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...
- Linux Shell编程与编辑器使用详解
<Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...
- linux shell 编程参考
#!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(m ...
- 一文学完Linux Shell编程,比书都好懂
一. Shell 编程 1. 简介 Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务. Shell 既是一种命令语言,又是一种程序设计语言. Shell scr ...
- linux shell编程总结
linux shell编程总结 本周学习了unix/linux shell编程,参考的是<LINUX与UNIX Shell 编程指南>,David Tansley著:徐焱,张春萌等译,由机 ...
- (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹
原文 (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) Windows Shell 编程,即 Windows ...
- Linux Shell编程中的几个特殊符号命令 & 、&& 、 ||
https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || ...
随机推荐
- C# 文件/文件夹压缩
一.ZipFile ZipFile类用于选择文件或文件夹进行压缩生成压缩包. 常用属性: 属性 说明 Count 文件数目(注意是在ComitUpdat之后才有) Password 压缩包密码 Siz ...
- Qt编程之QImage类小结
最近用Qt做图像处理,以下references是需要用到的 references: http://blog.csdn.net/lyc_daniel/article/details/9193881 ht ...
- 大量客户反映wordpress的网站打开巨慢,经分析发现,这些网站大都使用了google的字体服务,由于最近google的服务已经被大陆屏蔽,所以wordpress的网站打开时,会卡在字体加载上。
一会你安装完wp,发现打开巨卡的话,看看这个帖子:http://bbs.myhostcn.com/thread-1026-1-1.html最近一段时间,大量客户反映wordpress的网站打开巨慢, ...
- LeeCode-Invert Binary Tree
Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 /** * Definition for a ...
- where 1=1
sql: where 1=1 1=1 永真, 1<>1 永假. 1<>1 的用处: 用于只取结构不取数据的场合 例如: 拷贝表 create table_name as ...
- IOS Custom NavigationItem --写titleView
//先自己写一个titleView UIView *titleView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 20)];//all ...
- WIN7 64位系统安装JDK并配置环境变量
本文来自:http://jingyan.baidu.com/article/3c343ff70bc6ea0d377963df.html 工具/原料 JDK 方法/步骤 首先,下载JDK安装包,到官 ...
- lua select
可以用这样的方法产生类似foreach的功能: function printargs(...) local num_args = select("#", ...) for i = ...
- ADB命令解析
ADB全称Android Debug Bridge, 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(手机). 它的主要功能有: * ...
- Sybase isql常用命令
isql -Usa -S服务名 --常规登录 isql -Usa -S服务名 -Jcp936 --sa用户在客户端使用字符集cp936登录 C:\Users\Administrator>isql ...