将输出保存到linux中的文件

时间:2016-02-05 22:27:14

标签: linux bash

脚本:

 #!/bin/bash

 mydir="/bamboo/artifacts"
 cd "$mydir"
 job="-JOB1"

 for dir in */
    do
       bambooplan=`echo $dir | sed 's/\/$//g'`$job
       echo $bambooplan
    done

输出:

   LERST-TSTREDAPIDB2WIN4-JOB1
   LERST-TSTREDAPIDB2WIN5-JOB1
   CA-TSTALLSQLWIN3-JOB1
   CE-CSW-JOB1
   CE-SNAP-JOB1

我想将此传递给文件。我尝试了下面的命令,它给出了权限被拒绝的错误。有人能帮我弄清楚我想念的是什么吗?

echo $bambooplan > result.txt
$bambooplan > result.txt

2 个答案:

答案 0 :(得分:1)

我使用第一个'写作行'(echo $bambooplan > result.txt)测试了您的代码并且对我来说非常合适,只有我会将echo $bambooplan > result.txt更改为echo $bambooplan >> result.txt,否则,您将覆盖整个在每次迭代中保存文件,只保留最后一次。

请注意,您的代码会写入INSIDE /bamboo/artifacts,并且您将文件路径写为/bamboo/artifacts,绝对路径,而不是相对路径 - > bamboo/artifacts,所以,也许,您尝试在没有写入权限的文件夹中写入,并且需要chmod

答案 1 :(得分:0)

使用>重定向到您定义的文件如您所指定或>>>如果文件已经存在并包含数据。关于权限,只需通过chmod命令交换脚本的权限。

例如:

chmod 755 scriptname

更改输出文件权限的相同过程。