Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell Ksh中第*)`行的语法错误?_Shell_Unix_Case_Ksh - Fatal编程技术网

Shell Ksh中第*)`行的语法错误?

Shell Ksh中第*)`行的语法错误?,shell,unix,case,ksh,Shell,Unix,Case,Ksh,我试图在Unix中执行以下代码,并得到上述错误 请帮我更正代码 SERVER_NM=`uname -n` case $SERVER_NM in infad1) export ETL_SYS=TST ;; infasa1) export ETL_SYS=TST ;; infasb1) export ETL_SYS=TST ;; infap1) export ETL_SYS=PRD ;; i

我试图在Unix中执行以下代码,并得到上述错误

请帮我更正代码

SERVER_NM=`uname -n`
case $SERVER_NM in

  infad1)   export ETL_SYS=TST
         ;;
  infasa1)   export ETL_SYS=TST
         ;;
  infasb1)   export ETL_SYS=TST
         ;;
  infap1)   export ETL_SYS=PRD
         ;;
  infap2)   export ETL_SYS=PRD
         ;;
  infap3)   export ETL_SYS=PRD
         ;;
  infap4)   export ETL_SYS=PRD
         ;;
  *)        echo "No Dir";;
esac
当我执行此命令时,我会

 unexpected4]: syntax error at line 5 : `in and im using !/usr/bin/ksh

您的脚本中是否有像回车符(
\r
)这样的有趣字符? 请运行
od-c yourscript
查找,如果是这样,请使用更好的编辑器来显示有趣的字符(vim)或
dos2unix yourscript

export SERVER_NM=`uname -n`
case $SERVER_NM in
  infad1|infasa1|infasb1)  export ETL_SYS=TST ;;
  infap1|infap2|infap3|infap4)  export ETL_SYS=PRD  ;;
  *)        echo "No Dir" ;;
esac
echo $ETL_SYS
可能更快(取决于服务器的使用)


添加“export”使其成为一个常量字符,你能用上面的代码详细说明吗当我复制显示的代码时,我从
ksh
(在Mac OS X 10.9 Mavericks上)得到一个警告,即反引号机制应该改为
$(…)
(正式地说:
xyz.ksh:警告:第1行:`……`过时,使用$(…)
其中我调用了脚本
xyz.ksh
,并在“调试”模式下运行它(
ksh-vn xyz.ksh
;无执行,详细)。当我运行它时,它会显示“No Dir”,这是合理的。问题不在您显示的代码中,或者您安装了一个非常糟糕的
ksh
。这不是实际的代码,也不是实际的错误消息。第5行没有
*
,并且一个单独的反勾看起来像是一条截断的消息(可能是因为这样)。请绝对准确地描述代码和错误消息。
SERVER_NM="`uname -n`"
echo "${SERVER_NM}" | sed 's/infad1.*/PRD/;t;s/infasa1.*/PRD/;t;s/infasb1/TST/;t;s/infap[1-4].*/PRD/;t;s/.*/No Dir/' | read Tempo
export ETL_SYS="${Tempo}"
export ETL_SYS="`uname -n | sed 's/infad1.*/PRD/;t;s/infasa1.*/PRD/;t;s/infasb1/TST/;t;s/infap[1-4].*/PRD/;t;s/.*/No Dir/'`"