【发布时间】:2016-01-08 17:37:57
【问题描述】:
我正在编写一个 shell 脚本,在 shell 脚本中使用 perl 替换一个整数变量内容。
#!/bin/sh
InitialFileStep="$1"
CurrentStage=$((($i*(9*4000))+$InitialFileStep))
PreviousStage=$((($(($(($i-1))*(9*4000)))) + (InitialFileStep)))
perl -pi -e 's/$PreviousStage/$CurrentStage/g' file.txt
echo "Hey!"
似乎在文件中找不到变量内容。 不知道是什么问题,是不是因为变量是整数而不是字符串?
【问题讨论】:
-
perl 调用中有错误的引号?
-
是的,它定义了 shell 变量但使用(未定义的)Perl 变量。
-
您的代码有另一个问题:
test.sh: line 4: (*(9*4000))+42: syntax error: operand expected (error token is "*(9*4000))+foo")。$i来自哪里? -
你说得对,“我”也不应该在那里。