Ⅰ 什么事位置变量shell的变量类型有哪些种
比如要运行的程序是test.sh
test.sh 1 2 3 a b
上边的 1 2 3 a b传递到脚本里就是位置变量 $1 $2 $3 $4 $5
shell的变量基本上分为:全局变量,本地变量(或叫局部变量)。
Shell是一个用C语言编写的程序,它是用户使用linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言,涵盖的知识点多且杂,却是云计算开发人员必须要掌握的技术之一。接下来就给大家梳理一下Shell变量相关的知识。
(1)位置变量可以通过什么命令设置扩展阅读:
实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。
Ⅱ linux中位置变量的作用是什么
位置变量:用于处理命令行传递给shell脚本的参数,比如test.sh脚本,用命令“sh
test.sh
1
2
3”执行该脚本,则位置变量$1指代1,$2指代2,$3指代4,$0指代脚本名称test.sh。
Ⅲ 什么是Linux的位置变量问题,并举例说明.
大约 7 年前,Oracle 发布了 Linux 上的第一个商业数据库。从那时起,Oracle、Red Hat 和 Novell/SUSE 就不断地合作更改 Linux 内核,从而提高数据库和应用程序的性能。正因为这样,用于 Linux 的 Oracle 数据库 10g 才包含了与操作系统紧密相关的许多增强功能。DBA 比以往任何时候更需要了解和使用此平台来在其监视下对系统进行最佳管理。
以往,系统管理员与 DBA 之间在职责方面存在差别。但实际上,这种差别通常并不明显。许多 IT 部门雇佣一些可解决数据库级以及操作系统级问题的员工。当然,Oracle 数据库本身使用操作系统资源,并能与其环境紧密交互。
此外,许多系统管理员和 DBA 发现将其工作相关的任务自动化很有必要或比较方便。软件安装、系统资源监视以及系统管理涉及一些重复和容易出错的任务,而自动过程可以比手动过程更好地完成这些任务。
将这些任务自动化的方法之一是 shell 脚本。Shell 脚本自 Linux 系统安装之初就起着重要作用。启动和关闭系统时就会调用各种脚本。Oracle 和其他第三方供应商的实用程序也是通过 shell 脚本可调用的。由于这些脚本可以快速开发,因此历来就用它们构建应用程序原型。系统管理员已利用通过 shell 脚本实现的功能提供针对其监视的系统的特定要求和特征定制的解决方案了。
在本文中,我将介绍“bash”shell 脚本可以实现的、与在 Linux 平台上安装、运行和维护 Oracle 数据库相关的功能。注意,本文适用于 Linux 脚本初学者或对 Linux 相对陌生的 DBA;对大多数经验丰富的 Linux 系统管理员则不适用。
Shell 脚本是什么?
shell 脚本是一个包含命令序列的文本文件。当运行文件(或脚本)时,将执行该文件中包含的命令。术语 shell 仅指与 Linux 内核通信所使用的特定命令行用户界面。目前有多个不同的 shell,其中包括 C shell (csh)、Korn shell (ksh)、Bourne shell (sh) 和 Bourne-Again shell (bash)。shell 本身就是一个从文件或终端读取命令、解释这些命令并通常执行其他命令的命令。Bourne-Again shell 合并了上述其他 shell 的特性,本文就使用该脚本进行演示。
脚本文件中的第一行可用于指定使用哪个 shell 来运行该脚本。以下是所有脚本示例中包含的第一行的含义:
#!/bin/bash
为什么使用 Shell 脚本?
由于 shell 脚本与 DBA 的工作相关,因此您可能不会马上看到 shell 脚本的价值,这跟您的工作经历有关。如果您以前从未使用过 UNIX 或类似 UNIX 的系统,那么可能会对大量含义晦涩的命令感到一愁莫展。此外,除了作为关系数据库外,Oracle 10g 还提供了一个用于处理数据库数据的强健平台以及几个用于在数据库外部与操作系统交互的方法。
但您会发现几个探究 shell 脚本领域的原因,其中包括:
必须支持已经存在的脚本。
需要在安装 Oracle 软件前自动设置系统。例如,您可以编写一个脚本来检查 OS 的初始状态并报告安装软件前必须满足的任何前提条件。该脚本还可以创建相关的 OS 用户和组并为用户设置环境变量。
可以使用正在运行的 Oracle 数据库来执行手动或计划的任务。但在数据库未 运行时需要运行某些任务。可以使用脚本停止或启动数据库(以及侦听器或相关的数据库进程)。无法从数据库内部启动此类动作。
您需要一种监视数据库状态(例如,是否正在运行并可进行进程查询)的机制。这样的脚本还可以监视非特定于 Oracle 的其他进程和资源,从而提供系统当前运行情况的更详细信息。
需要将备份自动化。Oracle Recovery Manager (RMAN) 是一个用于开发可以在任何平台上运行的备份脚本的实用程序。可以从 shell 脚本中调用 Oracle Recovery Manager 并使用它执行各种备份和恢复活动。
您可能有一个并非特定于某个数据库的要求。您可能在一台计算机上安装了多个数据库。建议您不要使用单个数据库满足此要求,因为那样会引发潜在的安全性问题。在这些情况下,shell 脚本提供了一种既可以满足此要求又不会将进程与单个数据库关联的方法。
什么情况下不 使用 Shell 脚本
Oracle 数据库包含了超出 RDBMS 传统定义的功能。与软件的任何其他部分一样,它使用操作系统提供的资源,但它所“看到”并“更改”其环境的程度远远超过了其他软件。SQL 和 Oracle 的固定视图从数据库内部提供了系统视图,而 shell 脚本从数据库外部提供了系统视图。Shell 脚本并不是适用于所有问题的解决方案。
必须意识到,操作系统的许多方面可以从数据库内部进行监视和修改。可以使用 Oracle 的固定视图(带 v$ 前缀的视图)确定计算机的主机名 (v$instance) 或数据库正在其中运行的平台的名称 (v$database)。还可以通过这种方式确定与数据库相关的文件的位置和其他属性。可以直接从数据库中查询数据文件(v$datafile、dba_data_files)、临时文件(v$tempfile、dba_temp_files)、重做日志 (v$logfile)、存档日志 (v$archived_log) 和控制文件 (v$controlfile) 的位置和其他属性。可以通过该视图以及通过查看某些 init.ora 参数(db_recovery_file_dest、db_recovery_file_dest_size)确定有关闪回恢复区 ($recovery_file_dest) 的信息。还可以查询进程 (v$process) 和内存(v$sga、v$sgastat 等)的状态。有各种内置的 PL/SQL 程序包,并能够创建允许对底层 OS 进行其他访问的 Java 和 C 数据库对象。
如果您正在考虑为一个需要大量数据库访问的任务编写脚本,则脚本可能并不是最佳选择。本文的稍后部分将介绍如何使用 SQL*Plus 访问数据库,但在很多情况下,使用其他语言可以更好地解决此问题。
下表归纳了可以从数据库中访问的信息:
Ⅳ window怎样在命令行设置系统变量
1.单击“开始”à”运行“弹出“运行”窗口,在“打开”一栏输入cmd,回车。
2.进到命令提示符窗口,新建一个环境变量,比如创建一个名为JAVA_HOME的,值为JDK所在位置,则可输入set JAVA_HOME=JDK所在位置。
3.查看指定名称的环境变量,比如刚刚新建的JVVA_HOME,输入set JAVA_HOME,回车即可(如果指定的名称不存在,则会报错)。若是查看全部环境变量则输入set回车。
4.修改环境变量。我们在添加了JAVA_HOME变量后需要在path 环境变量最前面加上%JAVA_HOME%\bin;输入set path=value(其中value就是在path前面上%JAVA_HOME%\bin;后的值记住bin后面的分号不能掉)。
编后语:若想删除制定的环境变量可以输入set JAVA_HOME=再直接回车即可。
Ⅳ 如何修改环境变量的路径
设置环境变量有两种方式:
第一种是在命令提示符运行窗口中设置;
第二种是通过单击“我的电脑→属性→高级”标签的“环境变量”按钮设置。需要注意的是,第一种设置环境变量的方式只对当前运行窗口有效,关闭运行窗口后,设置就不起作用了,第二种设置环境变量的方式则是永久有效。如图所示
如何更改一个环境变量的设置呢?更改环境变量有两种情况:
一是追加方式,即在不改变环境变量现有设置的情况下,增加变量的值,比如要给环境变量增加一个值为“D:/Python”的设置,可以输入“path=%path%;D:/Python”。
另一种是完全修改方式,对于这种方式,可以采用直接创建一个环境变量的方法来实现。
第二种:win7下修改环境变量PATH
windows系统环境变量说明
%USERPROFILE%表示C:DocumentsandSettings当前用户名
%ALLUSERSPROFILE%表示C:DocumentsandSettingsAllUsers
%APPDATA%表示C:DocumentsandSettings当前用户名ApplicationData
%ALLAPPDATA%表示C:
%SYSTEMDRIVE%表示C:
%HOMEDRIVE%表示C:
%SYSTEMROOT%表示C:WINDOWS
%WINDIR%表示C:WINDOWS
%TEMP%和%TMP%表示C:DocumentsandSettings当前用户名LocalSettingsTemp
%ProgramFiles%表示C:ProgramFiles
%CommonProgramFiles%表示C:ProgramFilesCommonFiles
Ⅵ Dos下的Debug命令下,如何修改偏移地址变量值
Debug:g (go)运行当前在内存中的程序。使用不含参数的 g 将在 CS:IP 寄存器的当前地址处开始运行。 语法g [=address] [breakpoints]参数address对于当前位于存储器中的程序,指定它开始运行的地址。 breakpoints 指定可以设置为 g 子命令的一部分的 1 到 10 个临时断点。显示debug 子命令列表。 注释Windows XP 不使用该命令。使用它只是为了与 MS-DOS 文件兼容。 指定有效的 address 项 Address 是一个包含字母段记录的二位名称或一个四位字段地址加上一个偏移量。可以忽略段寄存器或段地址。CS 是下列“调试”子命令的默认段:a、g、l、t、u 和 w。所有其它命令的默认段是 DS。所有数值均为十六进制格式。段名和偏移量之间必须包含冒号。有效地址如下:CS:010004BA:0100使用address 参数 必须在 address 参数之前使用等号 (=),以区分 address 和断点地址 (breakpoints)。 当程序到达断点时,Debug.exe 将所有断点地址恢复为它们的原始指令并显示所有寄存器的内容、所有标志的状态以及最后执行指令的解码形式。Debug.exe 此时显示的信息与使用 r (register) 子命令并指定断点地址时相同。 如果不在断点处停止程序,Debug.exe 将不使用原始指令替换中断代码。 可以只在包含 8086 操作代码(操作码)的第一个字节的地址上设置断点。如果设置了 10 个以上的断点,Debug.exe 将显示以下信息:bp error使用用户堆栈指针 用户堆栈指针必须有效且必须有 6 个可用于 g 子命令的字节。g 子命令使用 iret 指令跳转到需要测试的程序。Debug.exe 设置用户堆栈指针并将用户标志、代码段寄存器和指令指针压入用户堆栈。(如果用户堆栈无效或太小,操作系统可能会失败。Debug.exe 在指定的断点地址处或指定的地址处放置中断代码 (0CCh)。 重新启动程序 出现下述消息后,请不要重新启动程序: Program terminated normally 要正确地运行程序,必须通过使用 n (Name) 和 l (Load) 子命令重新加载该程序。 获取使用 p 子命令来执行循环、重复的字符串指令、软件中断或子例程的信息,请参阅“相关主题” 获取使用 t 子命令来执行一个指令的信息,请参阅“相关主题”范例要运行当前内存中的程序,并要执行到 CS 段中的断点地址 7550 为止,请键入:gcs:7550Debug.exe 将显示寄存器的内容和标志的状态,然后终止 g 子命令。 要设置两个断点,请键入:
Ⅶ 如何用set命令设置Windows 7操作系统的环境变量
1首先,我们可以查看下当前操作系统到底有哪些环境变量,依次点击“开始”,“运行”,输入cmd,调出命令行程序!
2接着,在弹出的cmd命令行程序中,输入“set”,就可以查看当前操作系统的所有环境变量设置了。
3然后发现,这里面包含很多的系统设置,如ProgramW6432=C:\ProgramFiles,也就是说ProgramW6432这个环境变量是代表着C:\Program Files这个路径,可以简单验证一下,输入cd %ProgramW6432%这个命令就可以到达变量所代表的路径了!当然ProgramFiles这个环境变量同样代表的是这个路径:
4接下来和大家分享下如何用set命令增加环境变量!假设,我们经常使用360杀毒程序,程序目录为:C:\Program Files\360\360sd\360sd.exe,那么在cmd程序命令中直接输入360sd.exe是不行的,提示”不是内部或外部命令,也不是可运行的程序“,如下图所示:
5但是,如果切换到C:\ProgramFiles\360\360sd\这个目录下面的话,就可以正常执行了,如何
6接下来,我们要做的就是把C:\ProgramFiles\360\360sd\这个目录设置到系统的环境变量中去,主要修改的地方就是PATH这个变量,在原来PATH变量中添加C:\Program Files\360\360sd\这个路径,具体做法是:在命令行程序中输入”setPath=C:\ProgramFiles\360\360sd\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramFiles (x86)\ATI Technologies\ATI.ACE\Core-Static“,
7接下来我们再次查看系统的环境变量,发现系统的PATH变量已经置入了我们需要的360杀毒程序的目录:C:\Program Files\360\360sd\。
8然后,我们再次尝试在cmd命令行程序任意目录输入“360sd.exe”,看看能否执行我们需要的360杀毒程序,结果是肯定的,系统没有报错,
9当然了,我们如果不需要这个目录了,也可以删除掉,只需要在cmd命令程序中执行如下命令即可“setPath=C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramFiles (x86)\ATI Technologies\ATI.ACE\Core-Static”
读者其实可以发现,只要去掉360杀毒的目录就可以了,执行之后,发现360sd.exe这个命令又不能运行了呢!
Ⅷ 如何设置PATH环境变量
分析如下:
1、点击屏幕底部菜单栏中的“计算机”图标。
7、点击确定,设置完成。
(8)位置变量可以通过什么命令设置扩展阅读
1、环境变量相当于给系统或用户应用程序设置的一些参数,具体起什么作用这当然和具体的环境变量相关。比如path,是告诉系统,当要求系统运行一个程序而没有告诉它程序所在的完整路径时。
2、系统除了在当前目录下面寻找此程序外,还应到哪些目录下去寻找;再如tc或vc++中,set include=path1;path2; 是告诉编译程序到哪里去找.h类型的文件;当然不仅仅是指定什么路径,还有其它的作用的,如set dircmd=/4 设置一个环境变量的作用是在使用dir命令时会把/4作为缺省的参数添加到你的dir命令之后,就像你的每个命令都加了/4参数,它实际上是给命令解释程序command设置的一个环境变量,并且是给dir这个内部命令设置的。
3、DWORDGetEnvironmentVariable(LPCSTR lpName, LPSTR lpBuffer, DWORD dSize),参数lpName是你要求查询的环境变量的名,lpBuffer是返回你所指定的环境变量的值的,dSize是告诉这个函数lpBuffer可以存放多少个字节。
4、很多朋友会在自己的计算机上安装双系统,例如C盘安装Windows XP,D盘安装Windows 7。可是某些软件往往只在Windows XP系统中安装,Windows 7系统中是无法正常使用的,比较麻烦却有效的方法是再安装一遍。当我们了解了环境变量中的用途后就可以很好解决双系统的软件共用问题。
5、为什么在Windows XP中安装了的软件在Windows 7下无法运行呢(绿色软件除外)?原因是安装软件时往往须要向系统目录中复制某些文件,而使用另外一个系统时会由于缺少这些文件而无法运行。因此,我们可以通过设置环境变量的方法来解决这个问题。
Ⅸ 什么是位置变量shell的变量类型有哪些种
Linux Shell下的变量按其使用目的可分为3种类型:
环境变量:用于保存操作系统运行时使用的环境参数
位置变量:Bash将传递给脚本的参数保存在位置变量中,以便于在脚本中引用这些参数
预定义变量:由系统保留和维护的一组特殊的变量,这些变量通常用于保存程序运行状态等
自定义变量:由用户自行定义的变量,可用于用户编写的脚本,多个命令间的值传递等