gpt4 book ai didi

linux - Shell 脚本子字符串提取和操作

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

我能够从字符串中提取子字符串;但无论我尝试更改什么语法(我已经尝试了很多次),我都无法实际输入 if阻止此代码段,即使打印输出表明 CLIENT_NAME字符串匹配预期的字符串(附上第一个 echo 的输出)。只有第一个echo打印任何东西。我在这里做错了什么?非常感谢任何想法!

这个想法是如果客户端被命名为 aa_NNNN , 然后我需要提取 aaNNNN并检查 aa匹配已知字符串(例如“xx”),如果匹配,则仅计算版本NNNN如果版本 NNNN 做点什么超过已知版本 MMMM .

#! /bin/sh
CLIENT=$1
...
CLIENT_NAME="${CLIENT:0:2}"
CLIENT_VERSION=2015
echo "Before compare; client: $CLIENT_NAME; version: $CLIENT_VERSION"
if [ "$CLIENT_NAME" == "xx" ]; then
CLIENT_VERSION="${CLIENT:3:4}"
echo "Inside compare; client: $CLIENT_NAME; version: $CLIENT_VERSION"
if [ $CLIENT_VERSION -ge 2016 ]; then
...
fi
fi

第一个回显输出:

Before compare; client: xx; version: 2015

/bin/sh --version返回:

GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

最佳答案

我运行您的代码得到了相同的结果,但是从子字符串提取中删除了引号(并在第二个中将 , 替换为 :)修复了它。 .

CLIENT_NAME=${CLIENT:0:2}

...和...

CLIENT_VERSION=${CLIENT:3:4}

关于linux - Shell 脚本子字符串提取和操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34663174/

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