我有一个大型的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不可用:-()
我正在尝试在emacs模式下为命令行启用自动完成功能.当我尝试:
set -o emacs
bind '^I'=complete
bind '^I'=complete-list
Run Code Online (Sandbox Code Playgroud)
并重新启动,我得到"找不到绑定命令"错误.
有没有其他方法可以在emacs模式下使用tab-autocomplete,即选项卡完成第一个区别?如果没有,我如何在ksh中安装绑定?
谢谢
$是什么意思!在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.
如何将KornShell(ksh)脚本中的日期格式化为DD-MON-YYYY?
我尝试过以下方法:
date '+%d-%h-%Y'
Run Code Online (Sandbox Code Playgroud)
它返回2009年11月4日我需要11月成为NOV(全部上限).可以使用日期工具完成吗?
从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) 有没有一种蛮力的方式来做到这一点?
#!/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(我认为这样做).
我需要找到要使用UNIX处理的文件的文件扩展名.我要处理的两个文件扩展名是'.dat'和'.csv'.
请让我知道如何做到这一点.
以下简单期望脚本的目标是获取远程计算机上的主机名
有时候期望脚本无法执行ssh到$ IP_ADDRESS(因为远程机器不活动等)
所以在这种情况下,期望脚本将在10秒后超时(超时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) 我需要从包含一些字段的变量中找到最后一列.我需要写一些类似的东西:
if [ #the last column = "R" ];
then
value=`echo "'$value'"`
fi
Run Code Online (Sandbox Code Playgroud)
可能吗?
我想计算一个文件中的所有行,其中字节数大于一个值(比如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)