标签: ksh

如何警告在KornShell脚本中使用未设置的变量.

有没有办法在KornShell(ksh)脚本中抛出错误或警告,以防止使用未设置的变量?假设我有一个我想删除的临时文件夹.

TEMP_FILES_DIR='/app/myapp/tmp'
rm -Rf $TEMP_FILE_DIR #notice the misspelling
Run Code Online (Sandbox Code Playgroud)

如何在实际发生之前预防这种错误?

我知道脚本应该在尝试删除之前检查文件是否存在和空字符串,这只是一个愚蠢的例子来说明一些警告可以避免的错误.我不知道ksh中是否存在此功能.如果它确实存在,你如何打开它?

unix linux shell scripting ksh

2
推荐指数
1
解决办法
1310
查看次数

这个重定向">>&<filename>"会在Korn shell中运行吗?

我试图重定向UNIX命令的STDOUT/STDERR并附加到korn shell中的日志文件.

rm -rf file1 >>&logfile

这个命令会在ksh中运行还是一个典型的bash命令?使用上述命令会对您造成什么伤害?

bash shell redirect ksh

2
推荐指数
1
解决办法
5532
查看次数

如何在korn shell中获取变量的值?

当你被赋予变量的名称时,ksh中有没有办法获得变量的值?

例如:

#!/usr/bin/ksh
var_name=$1  #pretend here that the user passed the string "PATH"
echo ${$var_name}  #echo value of $PATH -- what do I do here?
Run Code Online (Sandbox Code Playgroud)

ksh

2
推荐指数
1
解决办法
9397
查看次数

ksh以特定语句回显stderr

我有以下shell脚本,回声输出到日志和错误到err_file.但是,我特别希望向stderr回应一些陈述.请帮忙

#!/bin/ksh
echo "paramPassed: $0 $#" 

err_file="error_file.txt"
new_file="new_file.txt"

exec >> ${new_file}
#exec >> ${new_file} 2>${err_file}
#exec >> ${new_file} 2>&1

if [ $# -eq 1 ]; then
    username=$1
fi  

userInfo=$(paramInfo ${username} | awk -F: '{print $2}')
echo ${userInfo} 

rcp ${err_file} mtvst32:/rcs/ver34/${err_file}

if [ $? -ne 0 ]; then
        #This doesn't work. Need the following to go to console
        echo "UserInfo.SH FAILED copy to mtvst32" >> &2; 
fi  
Run Code Online (Sandbox Code Playgroud)

我希望将最后一个if条件的输出发送到std err但是,无法弄清楚该怎么做.

ksh echo stderr

2
推荐指数
1
解决办法
7017
查看次数

如何一次退出多个嵌套shell?

我有一个主机,我没有sudo.它是用ksh设置的,我太习惯了bash而且chsh不起作用.所以我把/ bin/bash作为系统中.profile的第一行.

结果是,当我登录到这个系统时,它会自动进入bash.但是,当我退出shell时,并不奇怪我在ksh中登陆.

有什么窍门可以避免这个吗?

unix bash shell ksh

2
推荐指数
1
解决办法
1733
查看次数

关于KornShell中的'for'循环

有没有办法在KornShell(ksh)中使用'for'来实现以下内容?这是C等价物:

for(i=1;i<20;i++)
{
    printf("%d",i);
}
Run Code Online (Sandbox Code Playgroud)

我想知道这是否可以使用'for'而不是'while'来实现

我试过以下,似乎没有用.

for i in [1-20]
    do

    print $i
    done
Run Code Online (Sandbox Code Playgroud)

请让我知道您的想法和解决方案.

shell scripting ksh for-loop

2
推荐指数
3
解决办法
1万
查看次数

在ksh中执行最后一个命令

我正在运行Solaris,我想知道如何使用ksh运行最后一个命令.我知道在bash/sh中你可以做"!!" 对于最后一个命令和!-N表示"N减去最后一个命令".KSH中的等价物是什么?先感谢您.

shell ksh sh

2
推荐指数
1
解决办法
1万
查看次数

KornShell(ksh)有Do ... While循环吗?

我在我的KornShell(ksh)脚本中有一个循环,我想要至少执行一次,我想要一种优雅的方式来做,但是当我发现很多关于如何编写while循环的东西时,似乎没有做任何事情......在那里循环.

我正在做的是从配置文件中读取逗号分隔的文件列表并处理它们.如果文件列表为空,那么我想处理目录中的所有文件.

有什么好办法呢?

编辑:这是我目前的情况.我抓取文件名,然后从字符串中删除它以进行下一次传递.如果Files列表为空,我退出循环.但是,如果列表开头为空,我希望它仍然运行一次.

  while [[ -n "${FILES%%,*}" ]]; do
       FILE="${FILES%%,*}"                             
       FILES="${FILES#*,}"
  done
Run Code Online (Sandbox Code Playgroud)

unix shell scripting ksh

2
推荐指数
1
解决办法
2万
查看次数

ksh获取分配中的退出状态

我需要知道执行分配的命令的退出状态。

export VALUE=`My_Get_Value 10`
Run Code Online (Sandbox Code Playgroud)

我需要知道My_Get_Value脚本的退出状态。

$?我的状态是作业本身。

我在KSH v93中需要它

shell ksh

2
推荐指数
1
解决办法
48
查看次数

`elif'意外..用于日期功能

这是我的代码

CURR_MNTH=$(date +'%m' -d 'now')

if [$CURR_MNTH < 04]
    THIS_QTR=1
elif [$CURR_MNTH < 07] && [$CURR_MNTH > 03]
    THIS_QTR=2
elif [$CURR_MNTH < 10] && [$CURR_MNTH > 07]
    THIS_QTR=3
elif [$CURR_MNTH > 09]
    THIS_QTR=4
fi

echo $THIS_QTR
Run Code Online (Sandbox Code Playgroud)

我试图用上面的逻辑得到当前季度,但提示说我有'elif'意外错误..有人可以请帮助我

linux shell ksh

2
推荐指数
1
解决办法
97
查看次数

标签 统计

ksh ×10

shell ×8

scripting ×3

unix ×3

bash ×2

linux ×2

echo ×1

for-loop ×1

redirect ×1

sh ×1

stderr ×1