标签: ksh

在 Unix 中减去日期

有没有办法从日期中减去一个月或在 unix 中至少减去 30 天。

例子:

[yyy-mm-dd] - 30 天

2011-07-23 - 30 天

顺便说一下,日期可以是任何日期,具体取决于用户输入。

谢谢。

unix ksh date

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

如何在linux中找到两个变量的最小值

我有两个变量 $a 和 $b

是否有 shell 脚本命令将最小变量的值分配给 $c

IE

$c = min($a,$b) 
Run Code Online (Sandbox Code Playgroud)

以及一些可以在所有平台上运行的命令 hp-ux,aix,linux_x_64

提前致谢

编辑:默认外壳是 ksh

在我试图运行的脚本下方

rm abc.log 
near_dr=`sqlplus -s tcs384160/tcs#1234 <<\EOF
set pagesize 0 feedback off verify off heading off echo off
select max(sequence#) from v$archived_log where applied='YES' and thread#=1 and 
dest_id=2;


exit;
EOF`
DR=`sqlplus -s tcs384160/tcs#1234 <<\EOF
set pagesize 0 feedback off verify off heading off echo off 

select max(sequence#) from v$archived_log where applied='YES' and thread#=1 and

 dest_id=3;
 exit;
 EOF`
safe_var=$([ $near_dr -le $DR ] && …
Run Code Online (Sandbox Code Playgroud)

linux shell ksh

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

如何在 Unix 中找到减去 7 天的当前日期?

我试图找到今天前 7 天的日期。

 CURRENT_DT=`date +"%F %T"`
 diff=$CURRENT_DT-7 
 echo $diff 
Run Code Online (Sandbox Code Playgroud)

我正在尝试像上面这样的东西来找到比当前日期少 7 天的时间。有人可以帮我吗?

unix ksh sh

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

oracle中.pls和.sql文件的实际区别

oracle中.pls和.sql文件之间的实际区别是什么。两者对不同类型的语句有什么限制?

我得到了一个 unix(korn 脚本)项目,它在不同的地方同时使用 .sql 和 .pls 文件。试图弄清楚应该在哪里使用哪个。

unix oracle ksh sqlplus

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

如何计算shell脚本中变量的行数

这里遇到一些麻烦。我想将 ls 命令的输出捕获到变量中。然后稍后使用该变量并计算其中的行数。我尝试了一些变化

这是可行的,但如果没有 .txt 文件,它会说计数为 1:

testVar=`ls -1 *.txt`
count=`wc -l <<< $testVar`
echo '$count'
Run Code Online (Sandbox Code Playgroud)

这适用于没有 .txt 文件的情况,但当存在 .txt 文件时,计数会少 1:

testVar=`ls -1 *.txt`
count=`printf '$testVar' | wc -l`
echo '$count'
Run Code Online (Sandbox Code Playgroud)

此变体还表明,当不存在 .txt 文件时,计数为 1:

testVar=`ls -1 *.txt`
count=`echo '$testVar' | wc -l`
echo '$count'
Run Code Online (Sandbox Code Playgroud)

编辑:我应该提到这是 korn shell。

unix shell ksh

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

在 korn shell 中获取字符串的子字符串

我必须使用 ksh88 提取子字符串。(顺便说一句,找到 ksh 版本的简单方法$KSH_VERSION对我不起作用。我不得不使用

 [ "`echo "\c" | grep c`" ] && echo ksh93 || echo ksh88
Run Code Online (Sandbox Code Playgroud)

我尝试使用命令echo ${stringvariable : 2: 2}但它说bad substitution。我是 Unix 世界的新手。这是我为得到结果所做的:

我已经使用 PUTTY 登录到 Unix 并输入了上面的命令。我也先尝试了 ksh 命令,然后是我的命令,但仍然没有成功。有什么我做错了吗?

另外,如果我想要从位置 2 开始直到结束的子字符串怎么做?

unix ksh

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

将ksh输入数组存储到变量并传递给另一个脚本

我必须修改现有的ksh脚本,该脚本使用'shift'查看命令行参数,因此清空$ @,但是现在想将原始参数传递给第二个脚本。

在主线情况下,我可以通过将$ @对应到变量并将其传递给第二个脚本来实现,但是我无法使它用于带引号的命令行参数。

如果我有一个名为“打印机”的脚本,如下所示:

#!/bin/ksh

INPUT=$@  
echo "Printing args"
until [[ $# -eq 0 ]];do
   echo $1
   shift
done

./printer2 $INPUT
Run Code Online (Sandbox Code Playgroud)

和printer2如下所示:

#!/bin/ksh

echo "Printing second args"
until [[ $# -eq 0 ]];do
   echo $1
   shift
done
Run Code Online (Sandbox Code Playgroud)

我想要的输出

./printer first second "third forth"
Run Code Online (Sandbox Code Playgroud)

成为 :

Printing args
first
second
third forth
Printing second args
first
second
third forth
Run Code Online (Sandbox Code Playgroud)

我已经尝试过各种围绕变量的引号组合(在$ INPUT的赋值中,以及将其传递给printer2时),但无法弄清楚。有人可以帮忙吗?

ksh command-line-arguments

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

何时使用输出重定向创建文件?

我有一个在AIX ksh中运行的脚本,如下所示:

wc dir1/* dir2/* | {awk command to rearrange output} | {grep command to filter more} > dir2/output.txt
Run Code Online (Sandbox Code Playgroud)

这条线的前提条件是dir2/output.txt不存在.

问题是dir2/output.txt已经包含在输出中(它发生了数百次,没有问题).dir1和dir2是NFS安装的.

它与实现有关wc- 如果第一个参数需要很长时间怎么办?我想不是,因为我尝试了以下内容:

wc `sleep 5` *.txt > out.txt
Run Code Online (Sandbox Code Playgroud)

即使在这种情况下,out.txt也不会列出自己.

最后一点,在这个例子中使用了通配符,它​​们在实际脚本中使用.因此,如果首先发生扩展,为什么会出现这个问题呢?

dir2/output.txt实际创建的是什么时候?

filesystems aix ksh wc

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

使用Unix查找计算并删除旧文件

我想删除$DIR_TO_CLEAN超过$DAYS_TO_SAVE几天的文件.简单:

find "$DIR_TO_CLEAN" -mtime +$DAYS_TO_SAVE -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)

我想我们可以添加一个-type f或一个-f标志rm,但我真的想计算被删除的文件数量.

我们可以天真地做到这一点:

DELETE_COUNT=`find "$DIR_TO_CLEAN" -mtime +$DAYS_TO_SAVE | wc -l`
find "$DIR_TO_CLEAN" -mtime +$DAYS_TO_SAVE -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)

但是这个解决方案还有很多不足之处.除了命令重复之外,如果rm无法删除文件,此代码段会高估计数.

我与重定向体面舒适,管道(包括命名的),子shell, xargs,tee等,但我渴望学习新的技巧.我想要一个适用于bash和ksh的解决方案.

你如何计算删除的文件数量find

unix bash ksh

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

从ksh获取包含env变量的文件

我有以下代码片段:

#!/bin/ksh

source /users/some_user/.cshrc
Run Code Online (Sandbox Code Playgroud)

但是,运行它会产生source: not found错误.

我也试过使用dot像这样的运算符:

#!/bin/ksh

. /users/some_user/.cshrc
Run Code Online (Sandbox Code Playgroud)

但是,这也不能解决问题,尽管它不再给我source: not found错误.

获取.cshrc文件的正确方法是什么?

unix ksh

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

标签 统计

ksh ×10

unix ×7

shell ×2

aix ×1

bash ×1

command-line-arguments ×1

date ×1

filesystems ×1

linux ×1

oracle ×1

sh ×1

sqlplus ×1

wc ×1