关于csh中字符串截取的问题

linux_1984 2016-01-29 01:11:01
遇到一个在csh中的问题:
想要对字符串进行截取,比如:输入字符串abcd1,只提取前4位abcd,然后再做if判断,输入的值只会是abcd1或abcd2或abcd3......
或者有什么办法可以模糊掉abcd后面的数字呢?因为只想要提取前4位的字符。
目前我的代码如下,试过用 ${var:0:4} 来尝试提取前4位,但是不行啊,在csh中运行不了。

#! /bin/csh
set var = $< ;;
if ($var == "abcd") then
      echo "you are correct";;
      else
        echo 'you are wrong';;
endif

请各位大神帮帮忙啊。
...全文
1397 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
nswcfd 2016-02-01
  • 打赏
  • 举报
回复
可以考虑使用 =~ The operators '=~' and '!~' are like '!=' and '==' except that the right hand side is a glob-pattern (see Filename substitution) against which the left hand operand is matched. This reduces the need for use of the switch builtin command in shell scripts when all that is really needed is pattern matching. http://linux.die.net/man/1/tcsh
nswcfd 2016-02-01
  • 打赏
  • 举报
回复
csh貌似不支持子串(???),只能通过外部命令,比如cut或者awk?
打开下面链接,直接免费下载资源: https://renmaiwang.cn/s/nusrn Linux Shell字符串截取是一个在命令行环境下对文本数据进行处理的重要技能。它涉及到使用Shell命令行工具对字符串进行切割、提取特定字段或者修改字符串。在Linux系统,常用的Shell有Bash、Ksh、Csh等,其Bash是最为广泛使用的。对于字符串的截取,Bash提供了多种参数扩展和内建命令来进行精细控制。 在Bash,常用的字符串截取方法包括使用参数扩展的${variable:offset:length}语法,以及使用内建命令如expr和sed。参数扩展方法,variable是要操作的变量,offset是起始位置(从0开始计数),length是长度或者‘-n’表示从该位置直到字符串结尾。使用expr时,可以利用其子串提取功能expr substr string position length来获取子字符串。sed命令则通过正则表达式来匹配并截取字符串。 除了这些方法,还可以利用shell脚本的循环和条件判断结构,配合各种字符串处理工具如awk、cut等,以及利用shell的高级特性如数组和关联数组,对字符串进行复杂的处理和分析。 字符串截取技术在很多情况下都有应用,例如在处理日志文件、数据清洗、自动化脚本编写等方面。对于运维工程师、系统管理员、开发者来说,熟悉字符串截取操作是非常必要的。 在实际使用,开发人员可以根据需求选择最适合的字符串截取方法,因为不同的命令和方法在效率和适用性上可能有所不同。例如,如果需要从日志文件提取特定格式的数据,可能会选择使用cut命令,因为它简单快捷;而对于更复杂的数据提取任务,则可能需要使用awk命令。 此外,字符串截取不仅仅是操作字符串,它还可以与其他技术结合使用,例如管道和重定向。通过这些技术,字符串截取

23,223

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧