gpt4 book ai didi

linux - 不执行shell脚本

转载 作者:太空宇宙 更新时间:2023-11-04 05:08:36 25 4
gpt4 key购买 nike

我有一个 shell 脚本。

#
. ./shprofile

if [ "$1" != "INSERT_ALL_ITEMS" -a "$1" != "INSERT_ONE_ITEM" ]
then
echo "Usage: $0 [INSERT_ALL_ITEMS|INSERT_ONE_ITEM]"
exit
fi
#
echo "Start Date & Time is.." `date`
case "$1" in
INSERT_ALL_ITEMS)
echo "Executing all Items"
;;
INSERT_ONE_ITEM)
#
echo "Executing one Item"
;;
*)
echo "Invalid Options!!"
;;
esac
#
echo "Stop Date & Time is.." `date`

如果我使用以下命令执行上述脚本

./runItemsBatch.sh INSERT_ALL_ITEMS

然后它显示回显消息,而不是执行脚本

Usage: ./runItemsBatch.sh [INSERT_ALL_ITEMS|INSERT_ONE_ITEM]

脚本中有什么错误?为什么它不执行脚本,即使我给出了正确的选项。需要帮助。

最佳答案

鉴于您的脚本在我的 CentOS 7 虚拟机上运行良好(注释对其他文件的引用),我认为可能是您没有正确设置解释器。第一行 (#) 应该是 shabang (#!) 后跟解释器。例如:#!/bin/sh

您还可以尝试删除脚本中参数的引号,因为解释器可以...将它们解释为文字。我的意思是你应该尝试更换线路

if [ "$1" != "INSERT_ALL_ITEMS" -a "$1" != "INSERT_ONE_ITEM" ]

if [ $1 != "INSERT_ALL_ITEMS" -a $1 != "INSERT_ONE_ITEM" ]

尝试使用这两件事。然而,就我而言,该脚本适用于“shabang/no shabang”和“引号/无引号”的每种组合

希望我能有所帮助。

编辑:还尝试删除 if 中变量和运算符之间的空格(同样,这些规则取决于您正在使用的解释器或默认使用的解释器)

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

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