gpt4 book ai didi

linux - linux 上的 shell 脚本无法运行

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:27 26 4
gpt4 key购买 nike

我正在尝试在 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.shSimulator和sizesetup.sh的权限设置为755。

另外,模拟器的输入文件在/home/lab/data/pcap_partial,分别命名为 h_1200、h_1500 和 h_1900。

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

最佳答案

这一行在我看来很可疑:

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 看起来不像相对路径(虽然我肯定是错的),因此前导点不应该在那里。

关于linux - linux 上的 shell 脚本无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12042661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com