错误原因之一很有可能是你的脚本文件是DOS格式的, 即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A.
可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的
(1). vi filename
然后用命令
:set ff?
可以看到dos或unix的字样. 如果的确是dos格式的, 那么你可以用set ff=unix把它强制为unix格式的, 然后存盘退出. 再运行一遍看.

-------------------------------------------------------------------------------------------------------------------------

在Linux中Oracle安装成功后,首次启动使用时,会出现的一些问题总结和解决办法

http://blog.csdn.net/wenlele/article/details/6450858

1、  sqlplus命令不识别问题(bash :sqlplus command not found)

当你首次安装oracle后,也许会出现这种情况,第一次或许有点棘手,不知道如何改怎么办。这时不用着急,想想Linux里面的命令是如何运行的,如adduser等,我们发现是因为在/bin/文件夹下有这样的一个文件adduser,于是我们也想到了,把安装好的oracle中bin目录下的sqlplus文件拷贝到/bin文件目录下,

cp /opt/app/oracle/product/10.2.0/db_1/bin/sqlplus /bin

拷贝后,终端中运行sqlplus,成功。

注意:拷贝后,最好把执行权限给所有的用户,不然新建用户不能使用。

chmod 777 /bin/sqlplus

2、  启动oracle服务问题

不同Linux系统oracle启动文件不同,如Ubuntu下,我们需要建立/etc/init.d/oracledb,而在kylin系统中,文件在/etc/init.d/dbora,但位置都大致相同,我们只需要仔细找找都可以找到这样的一个启动服务文件。当你运行这些文件时,注意oracledb或dbora里面的变量,ORACLE_HOME、ORACLE_SID、PATH等等,这些变量都需要我们根据自己所安装的oracle目录具体配置。配置时,使用命令export:

export ORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1

路径名看你安装oracle路径而定。

其他变量类似。

3、lsnrctl、emctl等命令的识别问题(bash:lsnrctl/emctl command not found)

当在运行lsnrctl时,或许会出现bash:lsnrctl/emctl command not found这样的错误,不用着急,这个问题和第一个sqlplus命令未找到是类似的,我们也只需把$ORACLE_HOME/bin目录下的lsnrctl文件拷贝到/bin目录下(记得像问题1一样,改变执行权限),就可以识别了。

而当在终端中运行emctl时,或许会出现ORACLE_HOME未定义问题。Environment variable ORACLE_SID not defined. Please define it。这样根据提示,我们知道问题出在了哪,于是我们想,在哪里才能让它识别变量ORACLE_SID呢,Linux中都有几个通用的特定文件。如~/.profile ~/.bash_profile ~/.bashrc等等,~这个符号代表当前用户的主目录,如当前用户为user,这样~代表/home/user。上面给的几个文件都是用来配置用户环境的,如果你想让你所运行的脚本识别这些问题,都必须打开并在后面添加这些变量。

对于刚才$ORACLE_SID变量问题,解决方案就是在这些文件中添加ORACLE_SID,但是到底添加到哪个文件呢,你可以试着打开上面的这些文件,如果里面存在东西,那就加在里面,我的系统添加到的是~./bashrc,首先打开: vi ~./bashrc,然后添加

export ORACLE_SID=orcl,。然后 source ~./bashrc,使这个文件重新生效。

这样,lsnrctl、emctl都可以顺利通过了。

4、  第一次安装oracle不能运行任何命令

第一次安装oracle后,发现sqlplus,lsnrctl等都不可以运行,即使把路径走到$ORACLE_HOME/bin目录下,也不可以。这是我是通过首先运行dbstart命令来解决的(走到安装目录的bin目录下运行)。

5、  数据库必须启动

如果你上述都顺利通过了,但是当你用sqlplus登录进去的时候,总是出错。

登录使用默认方式:sqlplus / as sysdba。这是你应该是第一次登录到oracle数据库中,数据库还不能使用,这样你必须使用startup mount、startup open命令解决。这样数据库就打开了,你就可以使用整个数据库了。如果打开时失败了,你可以先shutdown下,先关闭再打开数据库。

6、  不同用户使用oracle问题

当你新建一个用户时,你会发现emctl等其他一些命令又不可以使用了,这又是为什么呢?当我们看错误出现的地方,发现存在变量未定义,这样又回到了问题2、3了,因为这些变量未定义,所以不能够成功执行。根据Linux系统所提供的每个用户都有一个环境文件,(.profile .bash_profile .bashrc)等,按照问题3,我们只需在这些文件里面加入所需要的变量就可以了,步骤和问题3一样。

./fedora_install_oracle.sh bad interpreter的更多相关文章

  1. Linux学习笔记之Linux shell脚本运行出现问题:bash: ./test: bin/sh: bad interpreter: No such file or directory

    问题: 在Linux系统中使用“vi test.sh”命令创建.sh文件,保存文件(:wq)并赋予权限(chmod +x test.sh)后,执行(./test.sh),出现问题:“bash: ./t ...

  2. ubuntu下的第一个脚本file.sh

    1.新建空文档,写入shell命令: #!/bin/sh cd /home/plg ./usb 第一行一定要有,一开始参考网上写的#!/usr/bin/sh,会提示错误 bash: ./file.sh ...

  3. 转载:对#!/bin/sh的认识

    转载网址:http://blog.163.com/hashes@yeah/blog/static/16867631220101029847420/ 对#!/bin/sh的认识 第一次学shell编程, ...

  4. 关于#!/bin/bash和#!/bin/sh

    关于#!/bin/bash和#!/bin/sh   #!/bin/bash是指此脚本使用/bin/bash来解释执行. 其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径. bash只 ...

  5. Mac OS X运行程序出现bad interpreter: operation not permitted的解决方案

    最近想在我的mac笔记本上安装gvim,从官网上下载了程序后竟然非常诡异的双击无法打开,命令行执行时系统报错: /bin/sh bad interpreter operation not permit ...

  6. #!/bin/sh简介

    第一次学shell编程,看的文章中说shell程序必须以"#!/bin/sh"开始,也就认为是这样了,虽然知道在shell中以"#"开始的语句都是注释,但也从没 ...

  7. sh脚本——#!/bin/bash

    #!/bin/bash是指此脚本使用/bin/bash来解释执行. 其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径. bash只是shell的一种,还有很多其它shell,如:sh ...

  8. Tomcat 在mac中Operation not permitted

    5.执行/Library/Tomcat/bin下的startup.sh,然后打开http://localhost:8080查看是否Tomcat已经启动,若要停止服务器就运行同目录下的shutdown. ...

  9. Node.Js —— PM2介绍

    pm2 是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的.它非常适合IaaS结构,但不要把它用于 ...

随机推荐

  1. 【Android测试】【随笔】Bugtags初体验

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5410003.html 前言 早晨接到一个临时任务,就是尝试 ...

  2. IIS8中部署WCF服务出错:HTTP 错误 404.3 - Not Found

    解决方法,以管理员身份进入命令行模式,运行: "%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ ...

  3. WebMethod属性详解

    WebMethod有6个属性:.Description.EnableSession.MessageName.TransactionOption.CacheDuration.BufferResponse ...

  4. 实验 snort安装配置与规则编写

    1 实验目的 在linux或windows任意一个平台下完成snort的安装,使snort工作在NIDS模式下,并编写符合相关情景要求的snort规则. 2 实验环境 物理机:windows 8.1 ...

  5. How to disable and clear query ranges in sysquery form

    query = new query('Query name'); queryBuildDataSource = query.dataSourceTable(tableNum('table name') ...

  6. 10 Golden Rules of Project Risk Management

    The benefits of risk management in projects are huge. You can gain a lot of money if you deal with u ...

  7. SqlServer2008R2安装步骤

    参考http://jimshu.blog.51cto.com/3171847/585023/

  8. qt 打开串口 UI卡死

    imx6在qt中打开调试串口时,ui总是会卡死.调试串口已经被文件系统占用,而在qt的app中使用open函数却能够调用open函数,打开成功,造成ui卡死,并且调试串口也卡死.本文记录这个问题的解决 ...

  9. Linux命令行–理解Linux文件权限(转)

    6.1.1 /etc/passwd文件 /etc/passwd:包含系统用户账户列表以及每个用户的基本配置信息 每个条目有七个字段,每个字段用冒号隔开 登录用户名 用户密码 用户账户的UID 用户账户 ...

  10. 微信支付开发(4) 动态链接Native支付

    关键字:微信支付 微信支付v3 动态native支付 统一支付 Native支付 prepay_id 作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/wxpa ...