【问题标题】:Bash doesn't create files in nested scriptsBash 不在嵌套脚本中创建文件
【发布时间】:2013-05-13 04:54:08
【问题描述】:

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

但是,当我使用 "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

注意-> 文件在文件夹中:

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

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

【问题讨论】:

  • 尝试像这样输入反引号:` ./second_script.sh $format `
  • 我刚试过,还是不行。 ://

标签: linux bash file shell sed


【解决方案1】:

注意->文件在文件夹中:

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

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

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

尝试使用绝对路径调用第二个脚本(“路径从 / 开始”)
如果 espn 在您的主文件夹中

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

尝试在第二个文件中添加回显语句以确保其可访问

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-04
    • 2012-06-18
    • 2013-01-19
    • 2021-08-29
    • 1970-01-01
    • 2014-08-24
    • 2012-11-29
    • 1970-01-01
    相关资源
    最近更新 更多