以下属于“shell 标签”的內容
-
抢沙发
shell十三问?(简体中文版)第6问:exec 跟 source 差在哪?
2015-01-12 By ustckris 分类:Linux 3,367人浏览
这次先让我们从 CU Shell 版的一个实例贴子来谈起吧:例中的提问原文如下: cd /etc/aa/bb/cc可以执行 但是把这条命令写入shell时shell不执行! 这是什么原因呀! (意思是:运行脚本后并沒有移到 /etc/aa/bb/cc 目录) 我当时如何回答暂时別去深究,先让我们了解一下进程(process)的观念好了。 首先,我们所执行的任何程式,都是由父进...
-
抢沙发
shell十三问?(简体中文版)第5问:var=value?export 前后差在哪?
2015-01-11 By ustckris 分类:Linux 3,411人浏览
这次让我们暂時丟开 command line ,先来了解一下 bash 变量(variable)吧… 所谓的变量,就是利用一个特定的”名称”(name)来存取一段可以变化的”值”(value)。 设定(set) 在 bash 中,你可以用 “=” 来设定或重新定义变量的內容: name=value 在设定变量的时侯,得遵守如下规定: * =左右两边不能...
-
抢沙发
shell十三问?(简体中文版)第4问:”"(双引号)与”(单引号)差在哪?
2015-01-11 By ustckris 分类:Linux 3,586人浏览
还是回到我们的 command line 来吧… 经过前面两章的学习,应该很清楚当你在 shell prompt 后面敲打键盘、直到按下 Enter 的时候,你输入的文字就是 command line 了,然后 shell 才会以进程的方式执行你所交给它的命令。 但是,你又可知道:你在 command line 输入的每一个文字,对 shell 来說,是有类別之分的呢? 简单而言,comman l...
-
抢沙发
shell十三问?(简体中文版)第3问:别人echo,你也echo,是问echo知多少
2015-01-10 By ustckris 分类:Linux 2,347人浏览
承接上一章所介绍的command line,这里我们用echo这个命令加以进一步的说明。 温习一下标准的command line包含的三个主要部分: command-name options argument echo 是一个非常简单、直接的Linux命令: *将argument送出至标准输出(stdout),通常就是在显示器上输出。 为了更好理解,不如先让我们跑一下echo 命令好了: $ echo $ ...
-
抢沙发
shell十三问?(简体中文版)第2问:Shell prompt(PS1)与Carriage Return(CR)的关系?
2015-01-10 By ustckris 分类:Linux 1,933人浏览
当你成功登陆进一个文字界面之后,大部分情形下,你会在屏幕上看到一个不断闪烁的方块或底线(视不同版本而别),我们称之为游标(cursor)。 游标的作用就是告诉你接下来你从键盘输入的按键所插入的位置,且每输入一键游标便向右边移动一个格子,若连续输入太多的话,则自动接在下一行输入。 假如你刚完成登陆还没有输入任何按键之前,你所...
-
抢沙发
shell十三问?(简体中文版)第1问:为何叫做shell?
2015-01-09 By ustckris 分类:Linux 2,006人浏览
在介绍shell是什么东西之前,不妨让我们重新检视使用者与电脑系统的关系。我们知道电脑的运作不能离开硬件,但使用者却无法直接对硬件做驱动,硬件的驱动只能通过一个称为“操作系统(Operating System)”的软件来控制。事实上,我们每天所谈的linux,严格来说只是一个操作系统,我们称之为“核心(kernel)”。 然而,从使用者的角度来说,使用...
-
抢沙发
shell十三问?(简体中文版)
2015-01-09 By ustckris 分类:Linux 3,454人浏览
《shell十三问?》由CU论坛shell版本版主“網中人”最早于2003年发表的一系列文章,因作者是台湾同胞,文章也以繁体的形式发表,有些术语和大陆使用的不同,虽说大陆同胞都自带繁体翻译功能,不过阅读起来多少会有一些不便。 为此,本站(知识蚂蚁 http://www.letuknowit.com/)網中人的这篇大作之时,顺便转译成简体中文,其中如有错漏或不当...
-
抢沙发
linux中的shell调试技术
2014-12-16 By ustckris 分类:Linux 5,578人浏览
在shell脚本中,通过set -x命令进入调试模式,之后Shell除了输出shell执行的结果外,还会输出每行执行的shell命令。 1 #!/bin/bash 2 3 set -x 4 5 a=1 6 while [[ $a -le 5 ]]; 7 do 8 echo $a 9 let "a+=1" 10 done 下面的输出中带加号表示该条语句是Shell执行的命令,不带加号表示该语句是Shel...
-
抢沙发
linux中的shell脚本语法检查
2014-12-15 By ustckris 分类:Linux 25,139人浏览
编写好shell后,在执行之前最好先进行下语法检查(可不是通过肉眼一行行去看哦),当然是通过shell命令来检查了。 bash -n script_name.sh -n选项只做语法检查,而不执行脚本。 下面新建一个t.sh文件来做个演示 1 #!/bin/bash 2 3 set -x 4 5 a=1 6 while [[ $a -le 5]]; 7 do 8 echo $a 9 let "a...
-
抢沙发
shell模拟多线程执行任务详解
2014-11-20 By ustckris 分类:编程语言 3,996人浏览
shell本身是不能实现多线程的,但是可以通过启动子进程,并将子进程放入后台执行来模拟多线程,为了在提高脚本执行效率的同时又不明显增加负载的作用,还需要对同时放入后台的进程数做下限制。 #!/bin/bash set -x # 开启调试模式 #判断是否有参数 if [ $# != 1 ];then echo "您输入的参数有误" exit -1 fi # 允许的最...