2013-05-13 30 views
0

当我运行第一个脚本调用第二个脚本时没有创建文件Bash不会在嵌套脚本中创建文件

然而,当我所说的第二个直接具有相同的代码,因为它出现在“回声”它运行正常“。 因此,我确实没有得到什么错误,因为代码单独运行。

./first_script.sh 2 ../espn

首先脚本:

#!/bin/bash 
echo "$2/$1" > format.temp 
format=$(<format.temp) 
format=$format"g.t*" 
echo "./second_script.sh $format" 
./second_script.sh $format 

这里的第二个脚本的代码(嵌套一个):

#!/bin/bash 

files=$1*/discover/*data 
for file in $files 
do 
    sed 's/"\([^"]*\)"/"foo"/' $file > $file\_2 
    sed -i 's/"foo",//g' $file\_2 
    sed -i 's/[0-9]g//gi' $file\_2 
    sed -i 's/[^,.0-9]//g' $file\_2 
done 

注 - > 这些文件位于文件夹中:

../espn/2g.tf/discover/

../espn/2g.tfidf/discover/

+2

尝试放回像这样的tick:'./second_script.sh $ format' – 2013-05-13 05:14:59

+0

我刚试过,它仍然没有工作。 :/ – Mansueli 2013-05-13 05:29:13

回答

1

注 - >文件是在文件夹:

。 ./espn/2g.tf/discover/

../espn/2g.tfidf/discover/

是什么意思?第一个目录中的第一个文件和第二个第二个文件 我觉得你的问题是与路径访问第二个文件

尝试调用使用abslute路径
第二个脚本(“路径从开始/”),如果ESPN是在你的主文件夹

~/espn/2g.tfidf/discover/second_script.sh $format 

尝试在第二个文件中添加回声声明以确保其可访问