0

我不熟悉 shell 脚本,所以我不确定如何去做或者是否可能。如果你能给我链接或建议,那就太好了。

我想做的是:

  • 创建一个文件,简单的文本文件 EX:

    参数 1(随机值)

    其中 randomvalue 是生成的随机数。

  • 使用我们刚刚创建的文件运行程序并输出到文件

    ./program filewejustcreated > A

该程序已经创建,它需要一个文件名作为参数,无需担心这些东西。

  • 使用我们刚刚创建的文件运行另一个程序,该程序已经存在并将其放入文件中

./我们刚刚创建的另一个程序文件 > B

  • 在 A, B 上运行 diff 命令

    差异AB

显示 diff 返回的内容...

谢谢

[编辑] 我正在使用外壳:tcsh

4

3 回答 3

3

你几乎已经写好了剧本。唯一缺少的是随机数;我会用 Perl 来做。这是 sh (或 bash;我假设您使用的是 Linux/Unix 系统)中的一个快速而肮脏的解决方案:

#!/bin/sh
perl -e 'print "TheWord (", int(rand(1000)), ")\n"' > tempfile
./program tempfile > A
./Anotherprogram tempfile > B
# rm tempfile  # this would delete 'tempfile' if uncommented
diff A B

现在将其保存在一个文件中(例如 script.sh)并在 shell 中执行:

chmod +x script.sh

使其可执行,并且

./script.sh

运行它。

于 2008-12-01T05:34:54.917 回答
3

我不确定在 tcsh 中生成随机数的功能。但是,在 BASH 等更常见的 shell 中,对变量 的引用会$RANDOM生成随机数。

因此,在您的 shell 脚本(BASH此处为 shell 脚本)中,内容将是:

#Pick the first argument to the call as the file name
FILE_NAME=shift
echo "param1 $RANDOM" > $FILE_NAME
./program $FILE_NAME > $FILE1
./Anotherprogram $FILE_NAME > $FILE2
diff $FILE1 $FILE2
于 2008-12-01T05:37:42.197 回答
0

Shell 脚本主要只是以完成工作的方式将不同的程序组合在一起。有很多程序只做一件简单的事情,并且可以组合起来完成更大的任务,当您进入 shell 脚本世界时,您将了解这些任务。大型 shell 脚本的一个示例是perl 的配置脚本。首先,您会看到(以及一些幽默的评论)使用了 cat、true、sh、rm、test、sed、uname 和 grep。

于 2008-12-01T05:47:46.060 回答