重命名文件名在命令提示符下工作,但在bash脚本中不起作用
我试图在bash脚本中重命名命令。例如,如果我跑步:重命名文件名在命令提示符下工作,但在bash脚本中不起作用,bash,unix,Bash,Unix,我试图在bash脚本中重命名命令。例如,如果我跑步: echo /home/scientist/mySalesData/campaignData_1482386214.24417.csv | sed 's/\(.*\)\(_.*\)/mv \"&" \"\1.csv\"/' | bash 它工作正常,并为我提供了目录/home/scientist/mySalesData/中的activitydata.csv 但是,如果我将其放入bash脚本中,如下所示: for f in /h
echo /home/scientist/mySalesData/campaignData_1482386214.24417.csv | sed 's/\(.*\)\(_.*\)/mv \"&" \"\1.csv\"/' | bash
它工作正常,并为我提供了目录/home/scientist/mySalesData/
中的activitydata.csv
但是,如果我将其放入bash脚本中,如下所示:
for f in /home/scientist/SalesData/*; do
if [ -f "$f" ];
cp "$f" /home/scientist/SalesForce/SalesData/Backups/
echo $f$ | sed 's/\(.*\)\(_.*\)/mv \"&" \"\1.csv\"/' | bash |
fi
done
我得到:
mv: cannot stat '/home/scientist/SalesData/campaignData_1482386214.24417.csv$': No such file or directory
任何帮助都将不胜感激 这里有一个尾随的
$
:
echo $f$
删除(并引用扩展):
您也可以在此处使用字符串:
sed ... <<<"$f"
sed 您在此处有一个尾随的$
:
echo $f$
删除(并引用扩展):
您也可以在此处使用字符串:
sed ... <<<"$f"
sed。。。
%
是操作员
%
是操作员。您有一个简单的打字错误。将$f$
更改为“$f”
,然后添加缺少的,然后添加。我在深夜这么做会得到什么。你有一个简单的打字错误。将$f$
更改为“$f”
,然后添加缺少的,然后添加。我在深夜这么做会得到什么。哦,太好了。从那个接线员那里学到了一些新东西。哦,太好了。从那个接线员那里学到了一些新东西。