【发布时间】:2012-07-21 03:58:20
【问题描述】:
这是交易。我已经在 Win7 环境中安装了 cygwin。这是我将在命令行中执行的一系列操作,并且一切正常,
文件 mpc.exe 是英特尔 Fortran 编译器创建的 64 位可执行文件
cp ./dir1/dir2/mpc.exe ./mpc.exe
./mpc.exe arg1 arg2
一切正常
想为此创建一个脚本。原因是我想要为 arg2 的各种值执行代码。文件“script_mpc.sh”包含以下内容,
#!/bin/sh
cp ./dir1/dir2/mpc.exe ./mpc.exe
./mpc.exe arg1 arg2
wait
return_val=$?
[ $retval -eq 0 ] && echo "successfully executed "
现在回到命令行,
$>chmod +x script_mpc.sh
$>./script_mpc.sh
错误:
./script_mpc.sh: line 2: ./mpc.exe: No such file or directory
一个非常新鲜的初学者。随时随地学习 shell 命令和脚本。请帮忙。
【问题讨论】:
-
如果您真的希望这是一个 bash 脚本,您需要在顶部使用
#!/bin/bash,而不是#!/bin/sh但我不知道这是否是您的问题,因为您的文件以 @ 命名987654327@ 所以也许你的意思不是 bash 在这个问题中。 -
脚本是否成功将mpc.exe复制到当前目录?尝试在
cp命令中指定源mpc.exe 的完整路径。 -
@Almo:感谢您的回复。我在标题处尝试了 bash 而不是 sh 。那里没有太大区别。同样的错误。
-
@rush:我完全有理由相信可执行文件已正确复制。目标文件和源文件的大小相同(准确地说是 7053 KB)。但是,肯定有一件奇怪的事情正在发生。复制过程完成后,Windows 文件夹会显示文件的以下标记:“mpc.exe *”。详细地说,可执行文件名称后跟一个空格和一个看起来像浮动“黑点”的东西。我不知道如何在最后没有这些角色。无论我使用什么扩展,它们都在那里,包括我根本没有指定任何扩展。
-
但是,最后那些无关的字符,'空白+浮动黑点'不显示相同的命令,'cp ./dir1/dir2/mpc.exe ./mpc.exe ' 在命令行中输入。
标签: shell cygwin command-line-arguments