gpt4 book ai didi

macos - 无法将参数传递到简单的 ShellScript(找不到命令)

转载 作者:行者123 更新时间:2023-11-29 09:18:39 24 4
gpt4 key购买 nike

我正在尝试编写一个简单的 shell 脚本,如果有第一个参数则打印出第一个参数,如果没有则打印“无”。该脚本名为 test.sh

    if [$1 = ""]
then
echo "none"
else
echo $1
fi

如果我在没有参数的情况下运行脚本,一切正常。但是,如果我运行此命令 source test.sh -test,我会在脚本继续并正确回显测试之前收到此错误 -bash: [test: command not found 。我做错了什么?

最佳答案

'[',']' 字符之前/之后需要空格,即

if [ "$1" = "" ] ; then
#---^---------^ here
echo "none"
else
echo "$1"
fi

并且您需要使用上面编辑的引号将您的引用(实际上是所有引用)包装到 $1。

修复该问题后,您可能还需要为脚本提供相对路径,即

source ./test.sh -test
#------^^--- there

当您收到 shell 错误消息时,在导致您遇到问题的行之前,或者非常靠近您的顶部的行之前,使用 set -vx 打开 shell 调试几乎总是有帮助的脚本。然后您可以看到正在执行的每一行/代码块,以及 shell 正在使用的变量的值。

希望对您有所帮助。

关于macos - 无法将参数传递到简单的 ShellScript(找不到命令),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7919922/

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