标签: ksh

在Ksh和Perl中并行执行任务的最佳方法是什么?

我有一个大型的C++项目,我需要在没有并行make的平台上构建(比如Linux上的make -j).服务器有6个CPU,我想手动进行并行构建.

我可以为大约300个目标文件生成这样的任务列表.我使用Makefile进行依赖性检查和增量构建:

make -f Makefile obj1.o

make -f Makefile obj2.o

make -f Makefile obj3.o ...

我如何并行执行这些任务,使用Ksh和Perl一次运行的任务不超过6个?(Java或Python不可用:-()

parallel-processing perl ksh makefile

4
推荐指数
1
解决办法
1882
查看次数

选项卡在Emacs模式下使用KSH完成,无需绑定

我正在尝试在emacs模式下为命令行启用自动完成功能.当我尝试:

set -o emacs
bind '^I'=complete
bind '^I'=complete-list
Run Code Online (Sandbox Code Playgroud)

并重新启动,我得到"找不到绑定命令"错误.

有没有其他方法可以在emacs模式下使用tab-autocomplete,即选项卡完成第一个区别?如果没有,我如何在ksh中安装绑定?

谢谢

unix emacs ksh

4
推荐指数
1
解决办法
7933
查看次数

在UNIX shell脚本中:$是什么!扩大到?

$是什么意思!在shell或shell脚本中?我试图理解一个具有以下内容的脚本.

local@usr> a=1
local@usr> echo $a
1
local@usr> echo $!a
a
Run Code Online (Sandbox Code Playgroud)

它正在打印变量.是这样的吗?我们有哪些其他$ x选项?我知道的很少是$$,$*,$?.如果有人能指出我的好消息来源,那将会很有帮助.顺便说一句,这是在Sun OS 5.8,KSH.

unix shell ksh

4
推荐指数
1
解决办法
744
查看次数

如何将KornShell脚本中的日期格式化为DD-MON-YYYY?

如何将KornShell(ksh)脚本中的日期格式化为DD-MON-YYYY?

我尝试过以下方法:

date '+%d-%h-%Y'
Run Code Online (Sandbox Code Playgroud)

它返回2009年11月4日我需要11月成为NOV(全部上限).可以使用日期工具完成吗?

unix shell ksh date

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

为什么md5不匹配Perl的Digest :: MD5输出?

从ksh终端运行md5函数与简单的Perl脚本的输出不匹配.

在终端我运行:

echo -n abc | md5
62fecf21103616856d72e6ffc9bcb06b
Run Code Online (Sandbox Code Playgroud)

如果我使用Perl运行它:

use Digest::MD5 qw(md5_hex);

foreach (@ARGV) {
   print "Digest is ", md5_hex($_), "\n";
}
exit
Run Code Online (Sandbox Code Playgroud)

我明白了

./perl_test.sh abc
Digest is 900150983cd24fb0d6963f7d28e17f72
Run Code Online (Sandbox Code Playgroud)

在我看到的所有示例和md5函数本身的示例中,Perl看起来正确,但仅使用Ksh 的示例不是:

md5 -x
MD5 test suite:
MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
Run Code Online (Sandbox Code Playgroud)

perl ksh md5

4
推荐指数
1
解决办法
1318
查看次数

如何获取当前shell脚本的完整路径名?

有没有一种蛮力的方式来做到这一点?

#!/bin/ksh
THIS_SCRIPT=$(/usr/bin/readlink -f $(echo $0 | /bin/sed "s,^[^/],$PWD/&,"))
echo $THIS_SCRIPT
Run Code Online (Sandbox Code Playgroud)

我坚持使用,ksh但更喜欢也适用的解决方案bash(我认为这样做).

bash ksh pathname

4
推荐指数
2
解决办法
7155
查看次数

如何使用UNIX查找文件扩展名?

我需要找到要使用UNIX处理的文件的文件扩展名.我要处理的两个文件扩展名是'.dat'和'.csv'.

请让我知道如何做到这一点.

unix ksh

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

期待+如何识别是否因为超时而打破?

以下简单期望脚本的目标是获取远程计算机上的主机

有时候期望脚本无法执行ssh到$ IP_ADDRESS(因为远程机器不活动等)

所以在这种情况下,期望脚本将在10秒后超时(超时10),这是可以的,但......

有两种选择

  1. Expect脚本成功执行ssh,并在远程计算机上执行命令hostname
  2. 期待脚本中断,因为超时为10秒

在这两种情况下,预计将退出

  • 如果ssh成功预期会在0.5-1秒之后中断,但是如果ssh不好则会在10秒后中断

但我不知道是否期望脚本成功执行ssh?

是否可以识别超时过程?或者验证期望因超时而结束?

备注我的Linux机器版本 - red-hat 5.1

期待脚本

 [TestLinux]# get_host_name_on_remote_machine=`cat << EOF
  > set timeout 10
  > spawn  ssh   $IP_ADDRESS
  >            expect {
  >                      ")?"   { send "yes\r"  ; exp_continue  }
  > 
  >                      word:  {send $PASS\r}
  >                   }
  > expect >  {send "hostname\r"}
  > expect >    {send exit\r}
  > expect eof
  > EOF`
Run Code Online (Sandbox Code Playgroud)

我们没有连接到远程主机的示例

 [TestLinux]# expect -c  "$get_host_name_on_remote_machine"
 spawn ssh 10.17.180.23
 [TestLinux]# echo $?
 0
Run Code Online (Sandbox Code Playgroud)

linux shell ksh tcl expect

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

如果最后一列等于"R"那么......有可能吗?在unix中

我需要从包含一些字段的变量中找到最后一列.我需要写一些类似的东西:

    if [ #the last column = "R" ];
    then
    value=`echo "'$value'"`
    fi
Run Code Online (Sandbox Code Playgroud)

可能吗?

unix awk ksh if-statement equals-operator

4
推荐指数
1
解决办法
141
查看次数

每行的文件unix中的字节数

我想计算一个文件中的所有行,其中字节数大于一个值(比如10).我怎么能这样做?

我尝试使用cat file | awk'length($0)>10'但是这给了我所有字符大于10的字符数.我想计算字节数.

我写了下面的代码,但它不起作用.它返回一些乱码输出:

#!/bin/ksh
file="a.txt"
while read line
do
    a=`wc -c "${line}"|awk {'print $1'}`
    if [ $a -ne 493]; then
    echo "${line}"
    fi
done <"$file"
Run Code Online (Sandbox Code Playgroud)

unix shell ksh

4
推荐指数
1
解决办法
3194
查看次数