【发布时间】:2026-02-14 22:55:01
【问题描述】:
我正在尝试在 linux 下配置 Eclipse 以运行带有参数的 .sh 脚本。为此,我正在使用外部工具配置。我能够运行我的脚本,但是一旦我添加了一个参数,我就会在控制台中收到一条消息the input device is not a TTY,并且脚本没有运行。这是我的配置:
这可能是什么情况?我将不胜感激。
编辑:这是脚本:
#!/bin/bash
EDISON_DEVICE="root@192.168.1.202:/tmp"
WORK_DIR=$(pwd)
CLEAN=false
BUILD=false
TEST=false
CREATE_DOC=false
UPLOAD=false
#tabs 30
if [ $# -eq 0 ]
then
echo -e "Options:\n-c, --clean \tClean project\n-b, --build\tBuild project\n-d, --doc\t Create documentation\n-u, --upload\tUpload project to Edison device\n-e, --edison string\tEdison device ip (need to copy output)"
fi
while [ $# -gt 0 ]
do
key="$1"
case $key in
--help)
echo -e "Options:\n-c, --clean \tClean project\n-b, --build\tBuild project\n-d, --doc\t Create documentation\n-u, --upload\tUpload project to Edison device\n-e, --edison string\tEdison device ip (need to copy output)"
exit
;;
-c|--clean)
CLEAN=true
;;
-b|--build)
BUILD=true
;;
-t|--test)
TEST=true
;;
-d|--doc)
CREATE_DOC=true
;;
-u|--upload)
UPLOAD=true
;;
-e|--edison)
EDISON_DEVICE="$2"
shift # past argument or value
;;
*)
echo "Unrecognized option $key" # unknown option
;;
esac
shift # past argument or value
done
# VALIDATION
if $UPLOAD; then
if [ "$EDISON_DEVICE" = "" ]
then
echo 'Please use option --edison to compile project or fill default EDISON_DEVICE on script'
exit
fi
fi
# EXECUTION
if $CLEAN; then
docker run --rm -it -v $WORK_DIR:/tmp --workdir /tmp inteliotdevkit/intel-iot-yocto -c "make clean"
fi
if $BUILD; then
docker run --rm -it -v $WORK_DIR:/tmp --workdir /tmp inteliotdevkit/intel-iot-yocto -c "make"
fi
if $TEST; then
docker run --rm -it -v $WORK_DIR:/tmp --workdir /tmp inteliotdevkit/intel-iot-yocto -c "make test"
fi
if $CREATE_DOC; then
make docs
fi
if $UPLOAD; then
echo -e "${COLOR}Copy program-test-python to Edison device${NC}"
scp program-test/PythonConnectorEdison.py program-test/_PythonConnectorEdison.so program-test/python_script.py $EDISON_DEVICE
fi
【问题讨论】:
-
我做的和你一样,对我来说它有效。你的 shell 脚本的内容是什么?
-
我已经添加了脚本内容
-
一旦脚本被揭露,*.com/questions/40536778/…的可能副本