我在shell脚本中运行以下行
echo "$(tr -s '\n' ' ' < ${data[1]} | grep -oP '<af:popup.*?"${data[2]}".*?>')"
echo "(tr -s '\n' ' ' < ${data[1]} | grep -oP '<af:popup.*?"${data[2]}".*?>')"
该命令应该从文件\n
转换所有${data[1]}
,并在此文件中包含如下模式:
(af:popup.*?logicalCostingRecordExistsPopup.*?)
问题是第一行是返回空数据。只是为了验证我的脚本,我回应了命令来检查被替换的内容并直接在shell中运行。输出如下所示
tr -s '\n' ' ' < hello.jsff | grep -oP '<af:popup.*? logicalCostingRecordExistsPopup.*?>'
当我直接在shell中运行它时,它会给我预期的输出。
不知道为什么在shell脚本中运行时没有提供输出
答案 0 :(得分:0)
不使用双引号,而是使用单引号。
class Square{
int r=1;
int power(int n, int p) throws Exception
{
int s=n;
if(n<0||p<0)
{
throw new Exception("n and p must be positive");
}
if(p==2)
{
return n*n*r;
}
else
{
r=r*n;
return power(n,p-1);
}
}
}