gpt4 book ai didi

linux - Bourne Shell - 如何识别第一个参数是 ''

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:41:18 26 4
gpt4 key购买 nike

Bourne Shell 脚本如何知道它收到的第一个参数是''(两个单引号?

我试过了

if [ -z "$1" ] ; then
echo "Wrong number of parameters"
fi

但似乎 $1 扩展为空字符串,"$1" 也是如此。

最佳答案

当您在命令行 shell 中键入 '' 时,会将其转换为参数 - 零长度字符串。检查包含数字或参数的变量(在检查 -z "$1"之前)。

# check for any arguments
if [ "$#" -eq 0 ]; ...
# or -- has arguments and first one is ''
if [ "$#" -gt 0 -a -z "$1" ]; ...

有关 INTEGER 比较测试(-eq、-gt 等),请参阅“man test”。

编辑(基于对问题的评论):

在 Windows 上(你使用什么 shell?)你必须检查 ''(两个字符)(我认为 cmd.exe 以这种方式传递它)。在 Linux 上,您的脚本获得字符串长度为零的参数。

if [\( "$#"-gt 0 -a -z "$1"\) -o "$1"= "''"]; ...

关于linux - Bourne Shell - 如何识别第一个参数是 '',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9411965/

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