shell脚本命令
㈠ 如何用SHELL命令运行一个文件
1、Shell是命令解释器,所执行的文件有两种,一种是基于ELF文件格式的可执行文件,一种是基于Shell脚本格式的脚本文件。
2、不管是可执行文件还是shell脚本,如果存在于PATH变量所指明的路径中,shell会自动寻找相应的可执行文件,用户只需要输入可执行文件名或者脚本名即可执行。
3、如果可执行文件或者Shell脚本的存放位置不在PATH变量所指明的路径中,则需要通过".”来执行,比如下面的C语言写的hello world程序,需要输入./t才可以被shell运行。
㈡ 如何在shell脚本中执行cd命令
首先 SHELL 文本文件必须要具有可执行权限。该权限可以通过 chmod 命令进行更改。
其次必须要注意:在 UNIX/linux 系统中使用变更当前目录命令(cd),cd 命令的后面必须要有一个空格,且西文的斜线是反斜线 /。具体举例如下:(假设文件名为:my_shell)
$vi my_shell <cr>
cd /usr/include
保存该文件, 然后更改权限为可执行。
$chmod 755 my_shell <cr>
$my_shell <cr>
㈢ 如何执行shell脚本其中一条命令
方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:
复制代码代码如下:
cd /data/shell
./hello.sh
./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误信息。因为目前的工作目录(/data/shell)可能不在执行程序默认的搜索路径之列,也就是说,不在环境变量PASH的内容之中。查看PATH的内容可用 echo $PASH 命令。现在的/data/shell就不在环境变量PASH中的,所以必须加上./才可执行。
方法二:以绝对路径的方式去执行bash shell脚本:
复制代码代码如下:
/data/shell/hello.sh
方法三:直接使用bash 或sh 来执行bash shell脚本:
复制代码代码如下:
cd /data/shell
bash hello.sh
或
复制代码代码如下:
cd /data/shell
sh hello.sh
注意,若是以方法三的方式来执行,那么,可以不必事先设定shell的执行权限,甚至都不用写shell文件中的第一行(指定bash路径)。因为方法三是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。那么不用指定bash路径自然也好理解了啊,呵呵……。
方法四:在当前的shell环境中执行bash shell脚本:
复制代码代码如下:
cd /data/shell
. hello.sh
或
复制代码代码如下:
cd /data/shell
source hello.sh
前三种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。
㈣ Linux shell脚本如何自动运行程序并输入命令
我建议你使用shell的spawn命令,很好用的,能实现你说的功能!
㈤ linux中的命令在shell脚本中怎么写
执行“nano function.sh”命令,创建新的shell脚本文件,名字为“function.sh”。
编辑新创建的shell脚本文件“function.sh"。函数必须先定义后使用。
shell脚本的内容如下:
#!/bin/bash
add(){
sum_1=$1;
sum_2=$2;
sum=`expr $sum_1 + $sum_2`;
echo "the sum is ${sum}";
}
add $1 $2
4
给新创建的function.sh赋可执行权限,命令为“chmod 755 function.sh”。
5
使用“./function.sh 1 2”调用脚本,并给脚本传递两个数字。
6
执行命令的结果为“the sum is 3”。
㈥ linux下shell脚本命令
Shell脚本基本知识
概述:shell其实是内核与用户之间的一个接口,
shell脚本
如果有一系列经常使用的linux命令,你可以把它们存储在一个文件肿。shenll可以读取这个文件,并执行其中的命令。这样的文件成为脚本文件。
执行shell脚本
要创建一个shell脚本,你要使用任何编辑器比如vi在文本文件中编写他。
为了使用bash shell赖执行脚本magic,其命令是:bash magic或者./magic
echo命令:
echo “this is an example of the echo command!”
屏幕上就会回显“this is an example of the echo command!”
#符号
用于在shell脚本肿可以包含注解入口
echo “hello”
#this is a comment line. this would not proce any output!
echo “world!”
第二行是一个注解的例子。它将被shell忽略,而且不产生任何消息
变量:
可以在任何时间通过简单的赋值来创建。
语法:
<variable name>-<value>
Linux 中的所有变量都被当作字符串
引用变量:
$符号用于引用一个变量的内容
variable1 = ${variable2}
读入值给变量
在执行shell脚本时,shell还允许用户直接从键盘读入一个值给变量,还可以使用read命令来作。
$read fname
本地和全局shell变量
局部变量
当引用shell时,只有创建它的shell能够知道变量的存在
全局变量
称为子shell
shell中创建的变量局部于创建它的shell,除非使用export命令特别指出是全局的。
环境变量:
通过改变这些变量的值,用户能够定制此环境
一些环境变量的例子是HOME,PATH,PS1,PS2,LOGNAME,SHLVL,及SHELL
HOME变量
Linux系统中的每个用户都有一个相关的称作HOME的目录
当一个用户登录后,进入相应的HOME的目录
$ echo $HOME
PATH变量
包含一列用冒号定界的目录的路径名字,便于可执行程序的搜索。
PS1变量
PS1(Prompt String 1)变量包含了shell提示符,$符号
$ PS1 = “HELLO>”
HELLO>
PS2变量
是为第二个提示符设置值的环境变量
LOGNAME变量
包含用户的注册名字
$echo “${LOGNAME}”
SHLVL 变量
该变量包含当前工作的shell level
SHELL变量
环境变量存储了用户缺省的shell
env命令
可用来查看所有的已移出的环境变量表和它们各自的值!
命令替换
在单个命令行中使用多个命令的另外一种方法(非Pipes)是通过命令替换
echo “the data is `date`”
expr命令
用于求之算术表达式。该命令的输出被送到标准输出
$ expr 4 + 5
将在屏幕上显示9
算术展开:
你可以在$((…)) 中括一个表达式,用下面的命令来计算它的值;
$((expression))
example1
编写一个shell脚本用于计算呼叫中心未应答的询问的数量。该脚本应该接受一天那所报告的询问的总数和应答的询问的数量,以便计算未应答的询问的数量。
所有未应答的询问总数=所有询问的总数-应答的询问的数量
<!--[if !supportLists]-->※ <!--[endif]-->※※※※※※※※※※※※※※※※※※※※※※※
条件执行
test和[]
求值表达式,并返回true(0)或false()
数值测试:
-eq 等于则为真
-ne 不等于则为真
-gt 大于则为真
-ge 大于等于则为真
-lt 小于则为真
-le 小于等于则为真
if构造
Linux shell提供了循环和判定的构造,可以在shell脚本中使用
算术测试
结合if构造,它可以用于测试变量的数字值
串测试
test命令也可以用于字符串
= 等于则为真
!= 不相等则为真
-z 字符串 长度为零则为真
-n 字符串 长度不为零则为真
文件测试
test命令也可以用于检查文件的状态
-e 文件存在则为真
-r 文件存在并且可读则为真
-w 文件存在并且可写则为真
-x 文件存在并且可执行则为真
-s 文件存在并且至少有一个字符则为真
-d 文件存在并且为目录则为真
-f 文件存在并且为普通文件则为真
-c 文件存在并且为字符型文件则为真
-b 文件存在并且为块特殊文件则为真
-a并且 -o或者 !非
exit命令
用于终止shell脚本的执行并返回到$提示符下
case 。。。esac
shell脚本中使用的这个构造依据变量的值而执行一组特定指令
当变量的值和其中的一个值匹配的时候,就执行写在该值下的一组命令。
example3
迭代
while构造
while <条件>
do
<命令(s)>
done
只有条件为真的时候,才能执行do与done之间的命令
until构造
until循环构造的求值模式于while循环相反
until循环将继续执行直到求值的条件为真的时候
for构造
for variable_name in <list_of_values>
do
…
done
for循环取一列值作为输入并对循环中每个值执行循环
break和contineu命令
同其他语言中的用法
example4
控制进程的执行
请求后台处理
用于请求后台进程的符号是 (&)
$ wc tempfile &
[1] 2082
$ vi newfile
检查后台进程
ps(进程状态)命令为每个当前的活动的每个进程产生一行入口。
终止后台进程
可用kill,如下所示
kill 278
查看完成一个命令所花的时间
你可以使用time命令来查看一个命令从开始到结束所花的时间
time fine /etc –name “passwd” 2> /dev/null /dev/null表明忽略错误信息。
管道的介绍
垂直条(|)是管道字符
它只是shell:“|”前面命令的输出作为“|”之后命令的输入发送
ls –l | more
用管道组合命令,功能强大
㈦ shell编程中,如何将编写的脚本把其脚本名当做shell命令来使用
首先确保你的shell脚本正确,且有执行权限。
然后sudo cp 目录/你的脚本文件名 /bin/你的脚本文件名
然后就可以了。
直接用
你的脚本文件名当作shell命令了。
看我的例子
sudocp/home/blue/mvmv.sh/bin/mvmv.sh
mvmv
然后我的桌面上的stop文件就变成了STOP了。(因为我的shell脚本如下)
#!/bin/bash
cd/home/blue/Desktop/
mvstopSTOP
说明这种方法成功。
㈧ 如何运行shell脚本
编写好的shell脚本(如:test),可以采取两种方式进行运行: 一、 $ sh test 一般不采用这种调用方式,尤其不采用“sh<test”的调用方式,因为这种方式将禁止shell读取标准输入。 也可以采用 $ ksh test 这种方式要求shell具有“可读”的访问权限。 二、直接运行可执行的shell脚本之前,首先应使用下列chmod命令,把shell脚本文件设置为可执行的文件。 chmod 755 test(除文件属主可写之外,每个用户均具有读和可执行的访问权限) chmod +rx test(同上) chmod u+rx test(只有文件属主具有读和执行的访问权限) 按照上述要求设置shell脚本文件的访问权限后,可采用下列方式,直接运行shell脚本了。 1、test(如果命令检索路径包含当前目录) 2、./test(如果命令减缩路径不包含当前目录) *说明: sh test 方式调用一个shell叫蹦可能会禁止某些shell特定的扩展功能,因而可能引起脚本无法正确执行。
㈨ linux下如何写个SHELL脚本,每天执行这么几句命令:
1、登录CentOS7系统,打开终端,输入命令env shell打印出shell进程的环境变量。
㈩ 怎么解释shell命令行与shell脚本运行结果不同
看看你的用户的默认shell是什么
就是/etc/password的最后一列
root:x:0:0:root:/root:/bin/bash
然后在shell脚本第一行就写上什么shell
#!/bin/bash
应该就好了 试试吧
还有要注意标点符号是中文的还是英文的 是全角还是半角