Bash不会在嵌套脚本中创建文件

时间:2013-05-13 04:54:09

标签: linux bash file shell sed

当我运行调用第二个脚本的第一个脚本时,没有创建文件

但是,当我使用与“echo”上显示的代码相同的代码直接调用第二个 时,会按预期运行 “。 因此,我真的不知道什么是错的,因为代码是单独运行的。

./ 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

注意 - &GT; 的 文件位于文件夹中:

../ ESPN / 2g.tf /发现/

../ ESPN / 2g.tfidf /发现/

1 个答案:

答案 0 :(得分:1)

  

注意 - &GT;文件位于文件夹中:

     

../ ESPN / 2g.tf /发现/

     

../ ESPN / 2g.tfidf /发现/

这是什么意思?第一个目录中的第一个文件和第二个目录 我认为您的问题在于访问第二个文件的路径

尝试使用abslute path('path from /')来调用第二个脚本 如果 espn 在您的主文件夹

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

尝试在第二个文件中添加echo statments以确保其可访问