Shell02

局部变量

1、普通字符串变量

变量名=value

变量名='value'  #单引号中不进行变量解析,原样输出,应用不多

变量名="value" #双引号会解析变量

例:

a1=123

a2='234'

a3="345"

echo "a1=$a1"

echo "a2=$a2"

echo "a3=${a3}"  #${a3}和$a3等同

在AWK中,单双引号的作用相反


local i  #在一个函数中声明一个局部变量


把命令作为变量

CMD=`ls`

CMD=$(ls)

echo $CMD  #此时就会执行命令

用法:用命令作为变量进行打包 tar zcf $(uname -n).tar.gz /etc/services

H=$(uname -n)

tar zcf ${H}.tar.gz /etc/services  #加{}的目的是为了确定变量名


Shell的特殊变量

$0  获取当前脚本的文件名

$n  获取第n个脚本参数,如果大于9,则用${n}

$#  脚本参数的个数


dirname $0  #取其路径

basename $0 #取其文件名


2、进程状态变量

$?  获取上一个指令的返回值,0为成功,非零失败

2表示权限拒绝

1~125表示脚本命令、系统命令错误或参数传递错误

126找到该命令但无法执行

127没有改命令

$$  获取当前Shell的进程号(PID)


利用$?在程序当中做判断:

RETVAL=$?

echo

[ $RETVAL -eq 0 ] && touch /var/lock/subsys/portmap


$* 将所有命令行所有参数视为一个整体字符串,等同于"$1$2$3"

$@  将命令行每个参数视为单独的字符串,等同于"$1"  "$2"  "$3",这是将参数传递给其他程序的最佳方式,因为他会保留所有内嵌在每个参数里的任何空白。

编辑test.sh,内容如下

for i in $*; do echo $i; done; echo "----"

for i in $@; do echo $i; done; echo "----"

for i; do echo $i; done; echo "----"

for i in "$*"; do echo $i; done; echo "----"

for i in "$@"; do echo $i; done; echo "----"

执行命令bash test.sh "one two" three four

输出结果:

one

two

three

four

----

one

two

three

four

----

one two

three

four

----

one two three four

----

one two

three

four

----


3、bash内部变量

Shell本身提供的常用命令:echo  eval  exec  export  readonly  read  shift  wait  exit  点(.)

echo  将变量名指定的变量显示到标准输出

shift  改变命令行参数的位置,即$2称为$1,$3成为$2,...,以此类推。并且$#减1

export  变量名=value  声明环境变量




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

553 mail from must equal authorized user解决方法

在配置发送邮件通知,验证其正确性时,出现"553 mail from must equal authorized user"提示的错误; 原因在于没有在"系统管理(Manage Jenkins)"的"系统设置(Configure system&…

3.1 读入一个参数

已知正方形的边长&#xff0c;求出其面积。 输入样例&#xff1a; 1 2 3 4 输出样例&#xff1a; 1 4 9 16 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交时&#xff0c;注释此句i…

[Apple开发者帐户帮助]八、管理档案(2)创建临时配置文件(iOS,tvOS,watchOS)...

创建临时配置文件以在设备上运行您的应用程序而无需Xcode。在开始之前&#xff0c;您需要一个App ID&#xff0c;一个分发证书和多个注册设备。 有关完整的临时配置文件工作流程&#xff0c;请转到Xcode帮助中的分发到已注册设备&#xff08;iOS&#xff0c;tvOS&#xff0c;wa…

Ant Build.xml

题记&#xff1a;用 Eclipse 3 &#xff0b;Tomcat 5 做东东&#xff0c;用起来还是比较爽。但是调试时每次手动Deploy到Tomcat中&#xff0c;比较麻烦。今用Ant来完成之。 1。打开Eclipse&#xff0c;在项目的根路径下建立builds.xml文件。 这个是Ant配置的关键。其内容如下&…

3.2 读入两个参数

计算两个整数的差。 输入样例&#xff1a; 1 3 5 7 输出样例&#xff1a; -2 -2 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交时&#xff0c;注释此句int num1, num2;while (cin &g…

解决做好一个机器学习项目的3个问题

机器学习是目前人工智能最令人激动的研究方向之一。我们可能更关注机器学习算法的实现细节&#xff0c;沉浸于机器学习所需要的数学功底&#xff0c;但对于机器学习从业者来说&#xff0c;如何更好更快速的实现一个机器学习项目更值得关注。 正如吴恩达在《机器学习》这门课中所…

数据挖掘的相关知识例子

一、贝叶斯 贝叶斯定理由英国数学家贝叶斯 ( Thomas Bayes 1702-1761 ) 发展&#xff0c;用来描述两个条件概率之间的关系&#xff0c;比如 P(A|B) 和 P(B|A)。按照乘法法则&#xff0c;可以立刻导出&#xff1a;P(A∩B) P(A)*P(B|A)P(B)*P(A|B)。如上公式也可变形为&#xf…

3.3 1!到n!的和

求1! 2! ... n! 的结果。 输入样例&#xff1a; 3 6 输出样例 9 873 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交时&#xff0c;注释此句int num;while (cin >> num){int…

[币严区块链]以太坊(ETH)Dapp开发入门教程之宠物商店领养游戏

阅读本文前&#xff0c;你应该对以太坊、智能合约有所了解&#xff0c;如果你还不了解&#xff0c;建议你先看以太坊是什么 除此之外&#xff0c;你最好还了解一些HTML及JavaScript知识。 本文通过实例教大家来开发去中心化应用&#xff0c;应用效果如图: 项目背景 Pete有一个…

怎么通俗易懂地解释贝叶斯网络和它的应用?

作者&#xff1a;小杰链接&#xff1a;https://www.zhihu.com/question/28006799/answer/38996563来源&#xff1a;知乎著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。英语原文&#xff1a;http://www.norsys.com/tutorials/netica/secA/tut…

3.4 等比数列

已知q与n&#xff0c;求等比数列之和&#xff1a;1 q q^2 ... q^n 输入样例&#xff1a; 6 0.3 5 1.3 输出样例&#xff1a; 1.428 12.756 #include<iostream> #include<fstream> #include<cmath> using namespace std;int main() {ifstream cin(…

SVM分类算法的基本理论问题

1.引言   随着网络技术的飞速发展和普及&#xff0c;进入了信息大爆炸的时代。信息无处不在&#xff0c;给我们的学习生活带来了诸多便捷&#xff0c;由于堪称海量的信息量&#xff0c;我们从中获取有用的信息变得困难&#xff0c;解决这一难题就是要对这些大量的信息进行分…

3.5 斐波那契数

求第n项的斐波那契数。 1 1 2 3 5 8 ... 输入样例&#xff1a; 6 10 输出样例&#xff1a; 8 55 #include<iostream> #include<fstream> #include<cmath> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交时&#xff…

决策树案例理解

小王是一家著名高尔夫俱乐部的经理。但是他被雇员数量问题搞得心情十分不好。某些天好像所有人都來玩高尔夫&#xff0c;以至于所有员工都忙的团团转还是应付不过来&#xff0c;而有些天不知道什么原因却一个人也不来&#xff0c;俱乐部为雇员数量浪费了不少资金。 小王的目的是…

3.6 最大公约数

输入样例&#xff1a; 6 5 18 22 输出样例&#xff1a; 1 6 #include<iostream> #include<fstream> #include<cmath> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交时&#xff0c;注释此句int m, n;while (cin >&…

剑指offer-反转链表

反转链表 一、题目描述 输入一个链表&#xff0c;反转链表后&#xff0c;输出新链表的表头。 &#xff08;看过答案和测试之后&#xff0c;题目隐藏条件是要求链表是不带头结点的&#xff09; 二、题目思路 就是用三个指针&#xff0c;head、pre、next&#xff0c;head之前都是…

3.7 最小公倍数

先各自除以最大公约数&#xff0c;然后将两个结果和最大公约数相乘&#xff0c;即为最小公倍数。 输入样例&#xff1a; 6 5 18 12 输出样例&#xff1a; 30 36 #include<iostream> #include<fstream> using namespace std;int gcd(int, int);int main() {ifs…

聚类、K-Means、例子、细节

聚类#####今天说聚类&#xff0c;但是必须要先理解聚类和分类的区别&#xff0c;很多业务人员在日常分析时候不是很严谨&#xff0c;混为一谈&#xff0c;其实二者有本质的区别。分类其实是从特定的数据中挖掘模式&#xff0c;作出判断的过程。比如Gmail邮箱里有垃圾邮件分类器…

图的广度优先遍历

#include <iostream> #include <vector> #include <queue> using namespace std;const int MAXV 1000; const int INF 1000000000; //下标代表点,数组元素代表连接的点 //图的邻接表 vector<int> Adj[MAXV]; //顶点数 int n;//DFS 如果顶点i已经被…

3.8 平均数

求若干整数的平均数&#xff0c;结果保留三位小数。 输入样例&#xff1a;第一个数字代表数据个数 3 6 5 18 4 1 2 3 4 输出样例&#xff1a; 9.667 2.500 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.t…