Linux上的shell脚本无法运行

时间:2012-08-20 18:01:00

标签: linux shell ubuntu

我正在尝试在Linux Ububtu 12.04 LTS服务器上运行shell脚本。 这是我的剧本:

#!/bin/bash
PROGRAM=./home/lab/data/setup_exp/Simulator
FILE_PART_PREFIX="/home/lab/data/pcap_partial/h_"
FILE_PART_NUM=3
RECEIVER_SIZE=4096
SENDER_SIZE=4096
BETA=0.25
UPDATE=400
MARKER=20
MODE=5
RESULT_PREFIX="/home/lab/data/setup_exp/size/size_eq4/res_"
time_part=1200
if [ ${time_part} -eq 1200 ];then
 nohup ${PROGRAM} 1 ${FILE_PART_PREFIX}${time_part}.pcap ${RECEIVER_SIZE} ${SENDER_SIZE} ${BETA} ${UPDATE} ${MARKER} ${MODE} >> ${RESULT_PREFIX}${time_part} 2>&1 &
fi
time_part=1500
if [ ${time_part} -eq 1500 ];then
nohup ${PROGRAM} 1 ${FILE_PART_PREFIX}${time_part}.pcap ${RECEIVER_SIZE} ${SENDER_SIZE} ${BETA} ${UPDATE} ${MARKER} ${MODE} >> ${RESULT_PREFIX}${time_part} 2>&1 &
fi
time_part=1900
if [ ${time_part} -eq 1900 ];then
nohup ${PROGRAM} 1 ${FILE_PART_PREFIX}${time_part}.pcap ${RECEIVER_SIZE} ${SENDER_SIZE} ${BETA} ${UPDATE} ${MARKER} ${MODE} >> ${RESULT_PREFIX}${time_part} 2>&1 &
fi

然后,这些是上面脚本目录中的文件和子目录,名为sizesetup.sh:Simulator size sizesetup.sh Simulator和sizesetup.sh的权限设置为755。

此外,模拟器的输入文件位于/home/lab/data/pcap_partial下 ,名为h_1200,h_1500和h_1900。

我的问题是我使用sh sizesetup.sh运行此脚本时没有弹出任何错误消息。但是,脚本没有执行(我使用'top'和'ps'命令来检查脚本的状态)

1 个答案:

答案 0 :(得分:0)

这条线看起来很可疑:

PROGRAM=./home/lab/data/setup_exp/Simulator

我认为领先的点不在那里。您可能来自Windows,并且在Linux上听说过要运行程序,您需要像下面这样调用它:./program

这在技术上并不正确。造成这种混淆的原因是Windows和Linux中PATH处理的差异。

在Windows上尝试执行程序时,无论%PATH%环境变量中是否列出当前目录,都会先搜索当前目录。

在Linux上,当前目录既不是隐式搜索(与Windows行为相反),也不是当前目录(即.)默认包含在$PATH环境变量中。因此,为了执行驻留在当前目录中的程序,您可以像下面这样调用它:./program,即显式指定可执行文件的相对路径

./home/lab/data/setup_exp/Simulator看起来不像相对路径(虽然我可能确实错了),因此不应该在那里使用前导点。