在脚本加入环境变量中加入有什么作用

shell程序的作用是什么?什么是shell过程?_百度知道
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
shell程序的作用是什么?什么是shell过程?
我有更好的答案
本是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。 脚本程序相对一般程序开发来说比较接近自然语言,可以不经编译而是解释执行。本质上,并且可以立即得到响应)。 shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心。脚本通常可以由应用程序临时调用并执行。各类脚本目前被广泛地应用于网页设计中,shell script是命令行命令简单的组合到一个文件里面。 Shell基本上是一个命令解释器,类似于DOS下的 :LINUX系统的shell原理 Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。较为通用的shell有标准的Bourne shell (sh)和C shell (csh),就是通过脚本功能来实现的。又如洪恩网站,所以只要系统上有相应语言的解释程序就可以做到跨平台,并且分配一个键位给这个命令。 脚本(Script)。也正因为脚本的这些特点:exec buys。 shell的类型在UNIX中主要有两大类shell Bourne shell (包括 sh, ksh,就是含有bind和alias等命令的集合,你可以把这个集合存为一个独立的文件然后在需要的时候执行,这样就可以方便你在CS中的使用。 脚本可以存为后缀名为.cfg的文件放在cstrike文件夹下,执行时在控制台输入:exec (脚本文件名)。它是命令语言、命令解释程序及程序设计语言的统称。所有的脚本都是通过这一方法实现的。 脚本?(Script):非 交互式模式;TOPS C shell ( tcsh). 附,并且执行它们。当它读到文件的结尾,shell也就终止了。在这种模式下,shell不与你进行交互,这样当用户浏览网页时,一旦调用这类脚本.cfg 即可。比如将一个脚本存为buys.cfg文件,则在控制台中输入,便会使用户的系统受到攻击。所以用户应根据对所访问网页的信任程度选择安全等级,然后调用相应的应用程序,选择“脚本”选项下的各种设置就可以轻松实现对脚本的禁用和启用. 操作系统与外部最主要的接口就叫做shell。 shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输 入,当我们点击网页上的E-mail地址时能自动调用OutlookExpress或Foxmail这类邮件软件, and bash) Bourne shell ( sh) Korn shell ( ksh) Bourne Again shell ( bash) POSIX shell ( sh) C shell (包括 csh and tcsh) C shell ( csh) TENEX&#47?http?//www.hongen.com,特别是对于那些本身内容就非法的网页.cfg则可以实现我们所需要的功能。要实现一个命令只要把这一过程定义(alias)好,以后只要按分配好的键位,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。举个最常见的例子,就可以实现这一过程,更不要轻易允许使用脚本,而是读取存放在文件中的命令。这种模式被称作交互式是因为shell与用户进行交 互。这种模式也是大多数用户非常熟悉的,?是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件:等待你输入,往往被一些别有用心的人所利用。例如在脚本中加入一些破坏计算机系统的命令、签退。当你签退后,shell也终止了。 shell也可以运行在另外一种模式:登录、执行一些命令?一些网页的英文新闻内容旁会有一个三角符号,点击它就可以听到英文诵读,这也是脚本在起作用。 交互式shell和非交互式shell 交互式模式就是shell等待你的输入,并且执行你提交的命令。通过“安全设置”对话框,或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被 重复使用。它接收用户命令(如ls等)。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互,向操作系统解 释你的输入,并且处理各种各样的操作系统的输出结果,利于快速开发或一些轻量的控制。 现在的脚本语言是比较多的,一般的脚本语言的执行只同具体的解释执行器有关,内核会做出相应的反应。 shell是一个命令语言解释器,shell就是围绕内核的外层。当从shell或其他程序向 Linux传递命令时
hell作为UNIX的一个重要组成部分.也是用户与UNIX系统的交互作用界面.Shell是一个命令解释程序,是它的外壳.除此,它还是一个高级程序设计语言.用shell编写的程序称为shell过程
本回答被网友采纳
hell作为UNIX的一个重要组成部分.也是用户与UNIX系统的交互作用界面.Shell是一个命令解释程序,是它的外壳.除此,它还是一个高级程序设计语言.用shell编写的程序称为shell过程
为您推荐:
其他类似问题
您可能关注的内容
shell程序的相关知识
换一换
回答问题,赢新手礼包脚本讨论区 - 脚本语言(script)学习交流 -
中国电子顶级开发网论坛(EETOP) 最大最火的半导体、集成电路、IC设计、嵌入式设计、电子电路、电子工程师论坛
脚本讨论区
版块主题&&&
- [悬赏资产 300 信元]如何在shell脚本中使用变量
-08%-44%-78%
在每种编程语言中,变量都扮演了一个重要的角色。在Linux shell脚本编程中,我们使用两种类型的变量:系统定义的变量和用户定义的变量。
shell脚本中的变量是用来调用一个数值或者字符值的手段。与正规的编程语言不同的是,shell脚本不要求你去为变量声明一个类型。
在本文中,我们将讨论shell脚本编程中的变量及其类型,以及如何设置和使用这些变量。
系统定义的变量:
这些变量由操作系统(Linux)自身创建并维护,通常它们以大写字母定义,我们可以通过命令&$ set&来查看这些变量。下面列出了部分系统定义的变量:
系统定义的变量
BASH=/bin/bash
Bash Shell 名称
BASH_VERSION=4.1.2(1)
COLUMNS=80
你的屏幕宽度(列数)
HOME=/home/linuxtechi
用户家目录
你的屏幕高度(行数)
LOGNAME=LinuxTechi
当前登录用户的名字
OSTYPE=Linux
操作系统类型
PATH=/usr/bin:/sbin:/bin:/usr/sbin
可执行文件搜索路径
PS1=[\u@\h \W]\$
命令行提示符
PWD=/home/linuxtechi
当前工作目录
SHELL=/bin/bash
Shell 名称
USERNAME=linuxtechi
当前登录的用户名
要打印以上变量的值,可以使用echo command命令,如下:
# echo $HOME
# echo $USERNAME
我们可以通过在环境变量名前前置一个美元符号来从你的脚本里输入环境变量。请看下面脚本演示:
$ cat myscript
#!/bin/bash
# display user information from the system.
echo &User info for userid: $USER&
echo UID: $UID
echo HOME: $HOME
注意:echo命令中的环境变量在脚本运行时会被它们的值替代。同时注意,我们可以再第一个字符串的双引号中放置$USER系统变量,而shell脚本仍然可以明白我们的意思。然而,该方法有一个缺点。看下面这个例子:
$ echo &The cost of the item is $15&
The cost of the item is 5
很明显,那不是我们说希望的。无论何时,当脚本遇见引号中的美元符号时,它都会认为你是在调用一个变量。在本例中,该脚本试着显示变量$1(而这个变量并没有定义),然后显示数字5。要显示实际上的美元符号,你必须前置一个反斜线字符:
$ echo &The cost of the item is \$15&
The cost of the item is $15
那样好多了。反斜线允许shell脚本将美元符号解释成为实际的美元符号,而不是变量。
用户定义的变量:
这些变量由用户定义。shell脚本允许我们在脚本中设置并使用我们自己的变量。设置变量允许你临时存储数据并在脚本中使用,让shell脚本看起来像一个真正的计算机程序。
用户变量可以是任何不超过20个的字母、数字或者下划线字符的文本字符串(LCTT 译注:变量只能以字母或下划线开头)。用户变量是大小写敏感的,因此,变量Var1和变量var1是不同的变量。这个小规则常常让新手编写脚本时麻烦重重。
我们可以通过等于号为变量赋值。变量,等于号和值(对于新手又是个麻烦的地方)之间不能有空格。下面是几个给用户变量赋值的例子:
var3=testing
var4=&still more testing&
shell脚本为变量值自动确定数据类型。shell脚本内定义的变量会在脚本运行时保留它们的值,当脚本完成后则删除这些值。
就像系统变量一样,用户变量也可以使用美元符号来调用:
$ cat test3
#!/bin/bash
# testing variables
guest="Katie"
echo "$guest checked in $days days ago"
guest="Jessica"
echo "$guest checked in $days days ago"
运行脚本会产生以下输出:
$ chmod u+x test3
Katie checked in 10 days ago
Jessica checked in 5 days ago
每次变量被调用,它都会变成了当前分配给它的值。有一点很重要,当调用一个变量值时,你使用美元符号,但是当为一个变量分配一个值时,你不能用美元符号。下面用例子来说明:
$ cat test4
#!/bin/bash
# assigning a variable value to another variable
value2=$value1
echo The resulting value is $value2
当你使用赋值语句中value1变量的值时,你仍然必须使用美元符号。这段代码产生了如下输出:
$ chmod u+x test4
The resulting value is 10
如果你忘了美元符号,而又让value2赋值行看起来像这样:
value2=value1
你会获得下面的输出:
The resulting value is value1
没有美元符号,shell解释变量名为普通文本字符串,这极有可能不是你想要的。
在shell变量中使用反引号(`):
反引号允许你将shell命令的输出赋值给变量。虽然这似乎没什么大不了,但它是脚本编程中主要的构建基块。你必须使用反引号将整个命令行包含起来:
**testing=`date`**
shell会在反引号中运行命令,然后将输出结果赋值给变量testing。下面的例子给出了如何使用一个常规shell命令的输出结果来创建一个变量:
$ cat test5
#!/bin/bash
# using the backtick character
testing=`date`
echo "The date and time are: " $testing
变量testing接收来自date命令的输出结果,而它又在echo语句中被调用。运行脚本会产生如下输出:
$ chmod u+x test5
The date and time are: Mon Jan 31 20:23:25 EDT 2011
注:在bash中,你也可以选用$(...)语法来替换反引号(`),它有个优点就是可以重用(re-entrant)。
$ echo " Today&s date & time is :" $(date)
Today&s date & time is : Sun Jul 27 16:26:56 IST 2014
作者: 译者: 校对:
原创翻译, 荣誉推出
上一篇:下一篇:
评论功能关闭
根据国家法律法规要求,本站暂时关闭文章评论功能。开放时间不确定。我们将谋求一种可以让大家更好的发表意见的方式。
根据国家法律法规要求,只有实名认证后才可以发表评论。
共计翻译: 176 篇
| 共计贡献: 1039 天
贡献时间: -&
在每种编程语言中,变量都扮演了一个重要的角色。在Linux shell脚本编程中,我们使用两种类型的变量:系统定义的变量和用户定义的变量。 shell脚本中的变量是用来调用一个数值或者字符值的手段。与正规的编程语言不同的是,shell脚本不要求你去为变量声明一个类型。 在本文中,我们将讨论shell脚本编程中的变量及其类型,以及如何设置和使用这些变量。
系统定义的变量: 这些变量由操作系统(Linux)自身创建并维护,通常它们以大写字母定义,我们可以通过命令$ set来查看这些变量。下面列出了部分系统定义的变量:
系统定义的变量
分享到微信
打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。
请将我们加入您的广告过滤器的白名单,请支持开源站点。谢谢您。新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 185, 距离下一级还需 15 积分
论坛徽章:0
这是一个/etc/init.d/hostname.sh的脚本
#! /bin/sh
### BEGIN INIT INFO
# Provides: hostname
# Required-Start:
# Required-Stop:
# Should-Start: glibc
# Default-Start: S
# Default-Stop:
# Short-Description: Set hostname based on /etc/hostname
# Description: Read the machines hostname from /etc/hostname, and
# update the kernel value with this value. If
# /etc/hostname is empty, the current kernel value
# for hostname is used. If the kernel value is
# empty, the value 'localhost' is used.
### END INIT INFO
PATH=/sbin:/bin
. /lib/init/vars.sh
. /lib/lsb/init-functions
do_start () {
& & [ -f /etc/hostname ] && HOSTNAME=&$(cat /etc/hostname)&
& & # Keep current name if /etc/hostname is missing.
& & [ -z &$HOSTNAME& ] && HOSTNAME=&$(hostname)&
& & # And set it to 'localhost' if no setting was found
& & [ -z &$HOSTNAME& ] && HOSTNAME=localhost
& & [ &$VERBOSE& != no ] && log_action_begin_msg &Setting hostname to '$HOSTNAME'&
& & hostname &$HOSTNAME&
& & [ &$VERBOSE& != no ] && log_action_end_msg $ES
& & exit $ES
case &$1& in
&&start|&&)
& & do_start
&&restart|reload|force-reload)
& & echo &Error: argument '$1' not supported& &&2
& & exit 3
& & # No-op
& & echo &Usage: hostname.sh [start|stop]& &&2
& & exit 3
这里的. /lib/init/vars.sh 得到了什么?????
以下是/lib/init/vars.sh 的脚本
# Set rcS vars
[ -f /etc/default/rcS ] && . /etc/default/rcS
# Accept the same 'quiet' option as the kernel
if [ ! -e /proc/cmdline ] || egrep -qw 'quiet' /proc/ then
& & VERBOSE=&no&
# But allow both rcS and the kernel options 'quiet' to be overrided
# when INIT_VERBOSE=yes is used as well.
[ &$INIT_VERBOSE& ] && VERBOSE=&$INIT_VERBOSE&
小富即安, 积分 2007, 距离下一级还需 2993 积分
论坛徽章:0
论坛徽章:8
& && &&&.&&filename [arguments]
& && & source filename [arguments]
& && && && &&&Read&&and&&execute&&commands from filename in the current shell
& && && && &&&environment and return the exit status of the last command exe-
& && && && &&&cuted&&from&&filename.& &If&&filename does not contain a slash,
& && && && &&&file names in PATH are used to find&&the&&directory&&containing
& && && && &&&filename.& &The&&file&&searched&&for&&in&&PATH need not be exe-
& && && && &&&cutable.&&When bash is not in posix mode, the current directory
& && && && &&&is&&searched&&if&&no&&file is found in PATH.&&If the sourcepath
& && && && &&&option to the shopt builtin command is turned off, the PATH&&is
& && && && &&&not&&searched.& &If any arguments are supplied, they become the
& && && && &&&positional parameters when filename is executed.&&Otherwise the
& && && && &&&positional&&parameters are unchanged.&&The return status is the
& && && && &&&status of the last command exited within the script&&(0&&if&&no
& && && && &&&commands&&are&&executed), and false if filename is not found or
& && && && &&&cannot be read.
复制代码
白手起家, 积分 185, 距离下一级还需 15 积分
论坛徽章:0
回复 #2 我是DBA 的帖子
. /lib/init/vars.sh&&和 sh /lib/init/vars.sh&&一样吗?
小富即安, 积分 2007, 距离下一级还需 2993 积分
论坛徽章:0
回复 #4 adminsinx 的帖子
小富即安, 积分 2390, 距离下一级还需 2610 积分
论坛徽章:0
原帖由 adminsinx 于
10:50 发表
. /lib/init/vars.sh&&和 sh /lib/init/vars.sh&&一样吗?
这要看从哪方面来分析。
. /lib/init/var.sh
在当前shell中执行脚本。
sh /lib/init/vars.sh
在子shell中执行脚本。
子shell中的变量不会影响到当前shell。
论坛徽章:8
原帖由 adminsinx 于
10:50 发表
. /lib/init/vars.sh&&和 sh /lib/init/vars.sh&&一样吗?
Read&&and&&execute&&commands from filename in the current shell
& && && && &&&environment
北京盛拓优讯信息技术有限公司. 版权所有 京ICP备号 北京市公安局海淀分局网监中心备案编号:22
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处

我要回帖

更多关于 脚本加入环境变量 的文章

 

随机推荐