shell脚本剪切,变量而不是-f[]中的数字
我正在分析一个长字符串,shell脚本剪切,变量而不是-f[]中的数字,shell,variables,cut,Shell,Variables,Cut,我正在分析一个长字符串,$string,无法将cut-d}-f4更改为cut-d}-f'$FIELD' ID="notnull" FIELD="4" while [[ ! -z $ID ]] do ID=`echo $STRING | cut -d} -f4 | cut -d'"' -f4` echo "ID:" $ID FIELD=`expr $COUNTER + 4` echo $COUNTER done 我需要改变这个迭代。尝试使用“”`{[但每次都会出现错误(( 然后
$string
,无法将cut-d}-f4
更改为cut-d}-f'$FIELD'
ID="notnull"
FIELD="4"
while [[ ! -z $ID ]]
do
ID=`echo $STRING | cut -d} -f4 | cut -d'"' -f4`
echo "ID:" $ID
FIELD=`expr $COUNTER + 4`
echo $COUNTER
done
我需要改变这个迭代。尝试使用“”`{[但每次都会出现错误((
然后我的while将暂时起作用,当变量ID为空时,请尝试使用双引号:
ID=`echo $STRING | cut -d} -f"$FIELD" | cut -d'"' -f4`
我觉得有一种更好的方法可以解析
$STRING
}和“
通常不用作字段分隔符,因此我假设您正在使用一些特殊的拆分来获取所需的文本。正则表达式可能使用起来更简单(无需生成太多进程)。您能否给出一个$STRING
输入的示例?+1:并将字段=$(expr$COUNTER+4)
修复为字段=$(expr$FIELD+4)
或bash
中的字段($FIELD+4))
在POSIX shell中。您也应该始终使用$(…)
优先于反引号。