shell 调试 2例
1.#############
#!/bin/ksh
if [ ! -z $TNS_ADMIN ]; then
export TNS_ADMIN=`dirname $TNS_ADMIN`
else
export TNS_ADMIN=$ORACLE_HOME/network/admin
fi
echo $TNS_ADMIN
调试过程:
if [ ! -z $TNS_ADMIN ]; then
修改为
if [ ! -z “$TNS_ADMIN” ]; then
ref doc https://www.computing.net/answers/programming/error-test-argument-expected/18951.html
Hi,
When i execute the following script i'm getting test: argument expected error at if [ -z $file ]. Can someone plz advise.
if [ -z $file ]
then
echo " DID NOT ENTER A FILE NAME "
elif [ ! -f $file ]
then
echo " \t File ' $file ' Doesn't Exists In $PWD Directory \n"
else
echo " \t File ' $file ' Exists In $PWD Direcotry \n"
fi
Thanks.

Your script worked for me with no problems:
#!/bin/ksh read file
if [ -z "$file" ]
then
echo " DID NOT ENTER A FILE NAME "
elif [ ! -f "$file" ]
then
echo " \t File ' $file ' Doesn't Exists In $PWD Directory \n"
else
echo " \t File ' $file ' Exists In $PWD Direcotry \n"
fi BTW, it's always a good idea to include the shell invocation on line 1 of your script. I'd surround $file with double quotes "$file" Have you tried the extended test facility - two brackets instead of 1: #!/bin/ksh read file
if [[ -z $file ]]
then
echo " DID NOT ENTER A FILE NAME "
elif [[ ! -f $file ]]
then 2.############# #!/bin/ksh set -x export ORACLE_BASE=/opt/oracle11g
export HOME=/home/oracle
export ORACLE_HOME=/opt/oracle11g/product/11.1.0 env LSNRLOG=`/opt/oracle11g/product/11.1.0/bin/lsnrctl <<EOF
set current_listener yesinuat
show trc_directory
EOF`
echo "Listener Log File: $LSNRLOG" LSNRLOG=`/opt/oracle11g/product/11.1.0/bin/lsnrctl <<EOF | grep trc_directory | awk '{print $6"/"$1".log"}'
set current_listener yesinuat
show trc_directory
EOF`
echo "Listener Log File: $LSNRLOG" 调试过程: crontab 在调用过程中,只有如下环境变量
PATH=/usr/bin:/usr/sbin:.
LOGNAME=oracle
SHELL=/usr/bin/sh
HOME=/home/oracle
PWD=/home/oracle
TZ=EAT-8 所以需要在你的shell脚本开始加上
##################
. /etc/profile
export ORACLE_BASE=/opt/oracle11g
export HOME=/home/oracle
export ORACLE_HOME=/opt/oracle11g/product/11.1.0
################## 3。###################### man test
shell 调试 2例的更多相关文章
- (转)shell调试方法
---恢复内容开始--- 转载:https://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/ Shell脚本调试技术 曹 羽中2007 年 ...
- shell调试选项
[shell调试选项] 一些常用选项的用法: -n 只读取shell脚本,但不实际执行 -x 进入跟踪方式,显示所执行的每一条命令 -c "string" 从strings中读取命 ...
- 单片机裸机下写一个自己的shell调试器(转)
源: 单片机裸机下写一个自己的shell调试器
- 安卓开发,adb shell 调试sqlite3数据库
安卓开发,adb shell 调试sqlite3数据库 在安卓中创建了sqlite3数据库,想要调试怎么办? 通过adb shell来进行查看. 第一步,将adb加入到系统变量中. 这样就可以在命令行 ...
- 总结一篇shell调试技巧及常见的脚本错误
#常见的调试命令工具 1.使用bash命令参数调试 #使用 [root@game ~]# sh [-xvn] test.sh #参数解释: -x:将执行的脚本内容输出出来,可以看到执行的过程 -n ...
- shell 调试手段总结
对于厌烦了的 print 和 echo,可以尝试点新鲜省力的小手段. 1. 使用 shell 的执行选项 sh 和 bash 常用的执行指令有:-n.-x.-c.-v. 其中: -n 是 noexec ...
- 16 shell调试技术
trap 命令 基本格式: trap command sig1 sig2 ... sigN 有3种信号可以捕获: EXIT : 从函数中退出, 或整个脚本执行完毕 ERR: 当一 ...
- Android漫游记(4)---.so文件动态调试一例
Android平台的动态调试一直以来是个困扰我等Coder的头疼问题,特别是对于本地的动态调试支持.能够说是"弱智"级别的,不知道Google的新版NDK和新出的Android S ...
- shell 调试
感觉编写shell在查找错误的过程中,很让你崩溃,还好shell也提供了一些调试的方式: 语法检查 -n选项做语法检查,而不执行脚本 sh -n script_name.sh 启动 ...
随机推荐
- 机器学习技法总结(五)Adaptive Boosting, AdaBoost-Stump,决策树
上一讲主要利用不同模型计算出来的g.採用aggregation来实现更好的g.假设还没有做出来g.我们能够採用bootstrap的方法来做出一系列的"diversity"的data ...
- windows下 sqlplus / as sysdba 报ora-12560的终极解决方法
windows下 sqlplus / as sysdba 报ora-12560的终极解决方法 本文是原创文章.转载请注明出处:http://blog.csdn.net/msdnchina/articl ...
- PHP 按位与或 (^ 、&)
今天朋友群里朋友问了下 按位与或的问题.. 按位于主要是对二进制数操作. <?php $a = 1; $b = 2; $c = $a^b; ?> 这里不是单纯的相加关系 十进制 1换算成二 ...
- java的自动类型转换
package BaseType; /*java的自动类型提升和窄化转换 * * 1. 当一个char,short,byte类型的变量被赋值给一个超出他自身能表示的最大范围的数,java会自动将该数转 ...
- Building Microservices: Using an API Gateway
What are microservices? http://microservices.io/ What are microservices? Microservices - also known ...
- ubuntu mysql5.7源码安装
本系列的lnmp的大框架基本上是按照http://www.linuxzen.com/lnmphuan-jing-da-jian-wan-quan-shou-ce-si-lnmpda-jian-yuan ...
- myeclipse 8.6安装SVN插件
方法二: 安装subclipse, SVN 插件 1.从官网下载site-1.6.9.zip文件,网址是:subclipse.tigris.org, 2.从中解压出features与plug ...
- 【转】Vuex 学习总结
对于很多新手来说,只是阅读文档是不好消化,我的建议是看看 vuex 的实例,通过研究实例来学习vuex.这样就会好理解多了.如果还是不能理解,最好办法就是先把store 的四个属性:state, ge ...
- 浅入分析和Linux内核相关的文件夹/proc和/sys .
近来文章被踩的厉害,我只想把自己从马哥学的知识自己总结下发到博客里,但是没想到昨天一篇文章刚发一上午被踩了9次...如果您真的觉得我的文章很烂,请告诉我原因,不胜感激. 这星期,马哥讲了关于Linux ...
- 使用cgroups限制MongoDB的内存使用
cgroups,其名称源自控制组群(control groups)的简写,是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU.内存.磁盘输入输出等). 这个项目最早是由Goo ...