linuxesac命令 linuxecho命令

case $- in *i*) ;; *) return;; esac$-记录着当前设置的shell选项i:interactive-comments , 包含这个选项说明当前的 shell 是一个交互式的 shell 。所谓的交互式shell,就是输入命令后,shell解释执行 , 然后返回一个结果 。在脚本中,i选项是关闭的 。
判断是否含有i,没有就返回,有就不操作,继续执行后面的
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 produce 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 45
将在屏幕上显示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
控制进程的执行
请求后台处理
用于请求后台进程的符号是 ()
$wctempfile
[1]2082
$vi newfile
检查后台进程
ps(进程状态)命令为每个当前的活动的每个进程产生一行入口 。
终止后台进程
可用kill,如下所示
kill 278
查看完成一个命令所花的时间
你可以使用time命令来查看一个命令从开始到结束所花的时间
time fine /etc –name “passwd”2 /dev/null/dev/null表明忽略错误信息 。
管道的介绍
垂直条(|)是管道字符
它只是shell:“|”前面命令的输出作为“|”之后命令的输入发送
ls –l | more
用管道组合命令 , 功能强大
linux下用什么命令来运行可执行文件不需要什么命令,在Linux上面只要是有可执行权限的文件都可以运行(当然前提是这个文件有代码逻辑,能运行的起来) 。给一个文件添加可执行权限的命令是这样执行的:chmod a x 文件名 。当给文件赋予了可执行权限后,可以这样运行它:在终端中先用cd命令切换到这个文件所在的目录,再用./文件名的方式运行它(在文件前面加的是一个英文点号和一个英文斜杠),表示在当前目录下运行文件,一定加上这个./ 。这样文件就运行起来了 , 不管它是二进制文件,还是.pl、.py、.sh等脚本文件,运行它们都是这样操作的 。
我的Linux系统中没有service命令,我想能不能安装一个软件包,把这个命令来添加上呢?你把我下面给你的脚本复制下,然后定名为service , 放到/sbin/下
#!/bin/sh
. /etc/init.d/functions
VERSION="`basename $0` ver. 0.91"
USAGE="Usage: `basename $0`option| --status-all | \
[ service_name [ command | --full-restart ] ]"
SERVICE=
SERVICEDIR="/etc/init.d"
OPTIONS=
if [ $# -eq 0 ]; then
echo "${USAGE}" 2
exit 1
fi
cd /
while [ $# -gt 0 ]; do
case "${1}" in
--help | -h | --h* )
echo "${USAGE}" 2
exit 0
;;
--version | -V )
echo "${VERSION}" 2
exit 0
;;
*)
if [ -z "${SERVICE}" -a $# -eq 1 -a "${1}" = "--status-all" ]; then
cd ${SERVICEDIR}
for SERVICE in * ; do
case "${SERVICE}" in
functions | halt | killall | single| linuxconf| kudzu)
;;
*)
if ! is_ignored_file "${SERVICE}" \
[ -x "${SERVICEDIR}/${SERVICE}" ]; then
env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" status
fi
;;
esac
done
exit 0
elif [ $# -eq 2 -a "${2}" = "--full-restart" ]; then
SERVICE="${1}"
if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" stop
env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" start
exit $?
fi
elif [ -z "${SERVICE}" ]; then
SERVICE="${1}"
else
OPTIONS="${OPTIONS} ${1}"
fi
shift
;;
esac
done
if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" ${OPTIONS}
else
echo $"${SERVICE}: unrecognized service" 2
exit 1
fi
其实service就是一个脚本,这是我linux上的 。你还可以把service名改成abc等其他的名字,服务就可以abc 服务 start|stop|status了,嘿嘿...
当然也可能直接用不了 , 那你就需要加上/sbin/service了,或者你在/etc/profile中加个变量
export PATH=/sbin/:/usr/sbin/就可以了 记得让变量生效啊 source /etc/profile
如果有错,自行更改,我英文不好...
【linuxesac命令 linuxecho命令】关于linuxesac命令和linuxecho命令的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读