这个shell脚本将做什么? 为什么我们在这里使用“: ([^]*)正在做什么 我的头在干什么?因为我在head手册页中没有找到任何“l”选项

这个shell脚本将做什么? 为什么我们在这里使用“: ([^]*)正在做什么 我的头在干什么?因为我在head手册页中没有找到任何“l”选项,shell,unix,Shell,Unix,1manexpr将告诉您STRING:REGEXP,这意味着字符串中REGEXP的锚定模式匹配 2 regexp\([^]*\)将匹配字符串,如xxx[^]表示除空格以外的任何字符。*表示重复任何时间,包括零次。\(和\)表示显示匹配的字符串。如果没有它们,结果将显示regexp匹配的位置 3.我还是觉得有点不对劲l在这里没有意义。它应该是1是1而不是l?这将是1(一)而不是l,它提取给定文件的第一行。head给出的提取行是“Create Table ne_GLOBAL”(,他们在第二行中所做的

1
manexpr
将告诉您
STRING:REGEXP
,这意味着
字符串中REGEXP的锚定模式匹配

2 regexp
\([^]*\)
将匹配字符串,如
xxx
<代码>[^]表示除空格以外的任何字符。
*
表示重复任何时间,包括零次。
\(
\)
表示显示匹配的字符串。如果没有它们,结果将显示regexp匹配的位置


3.我还是觉得有点不对劲<代码>l在这里没有意义。它应该是
1

1
而不是
l
?这将是1(一)而不是l,它提取给定文件的第一行。head给出的提取行是“Create Table ne_GLOBAL”(,他们在第二行中所做的是,它是一(1),我很困惑,THX在第二集的“claProductVersion”中会出现什么line@user1160090第一行代码将amSqlCre中的第一行文本分配给
calProductVersion
,并尝试使用类似
expr的“创建表ne\U全局”(“:”创建表\([^]*\)(“
在shell中。这将帮助您了解发生了什么。是的,我得到了答案,它将包含ne_GLOBAL
claProductVersion=`head -l ${amSqlCre}` 
claProductVersion=`expr "${claProductVersion}" : 'Create Table \([^ ]*\) ('`