Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
shell脚本剪切,变量而不是-f[]中的数字_Shell_Variables_Cut - Fatal编程技术网

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中。您也应该始终使用
$(…)
优先于反引号。