【问题标题】:Script Output to a file脚本输出到文件
【发布时间】:2015-01-29 15:44:11
【问题描述】:

为什么我无法从 shell 脚本输出到文件 dir_?

这是脚本中的命令:

userid]# vi script.sh

#! /bin/bash echo `grep -w 7171 $ABC` > /home/username/dir/dir_$(date +%Y%m%d_%H%M%S).csv

userid]# ./script.sh ./script.sh:第 13 行:/home/username/dir/dir_20141201_160840.csv:没有这样的文件或目录

我希望脚本会创建一个新文件。

请告知解决方法。

问候, 阿什什

【问题讨论】:

  • /home/username/dir 存在吗?此外,echo 是完全没有必要的,并且会主动导致grep 结果中的空格问题。
  • 是的,/dir 确实存在。那么,应该写多好呢?
  • grep -w 7171 "$ABC" > ... 那里根本不需要echo
  • 如果/home/username/dir 存在,那么您应该检查它的权限,但我预计在大多数情况下会出现与该场景不同的错误。
  • 谢谢。但是当我运行grep -w 7171 "$ABC" > WHERE $ABC 是一个文件名时,它会抛出一个错误:grep: : No such file or directory

标签: shell


【解决方案1】:

怎么样

([ ! -d /home/username/dir/ ] && mkdir /home/username/dir/) && grep -w 7171 $ABC > /home/username/dir/dir_$(date +%Y%m%d_%H%M%S).csv
  • [ ! -d /home/username/dir/ ]测试目录是否存在

  • mkdir /home/username/dir/ 如果目录不存在,则创建该目录。

  • rep -w 7171 $ABC > /home/username/dir/dir_$(date +%Y%m%d_%H%M%S).csv将结果grep到文件中

【讨论】:

    【解决方案2】:

    可能是因为dir 不存在。您必须创建它:

    ~$ echo "a" > f
    ~$ echo "a" > dir/f
    -bash: dir/f: No such file or directory
    ~$ mkdir dir
    ~$ echo "a" > dir/f
    ~$
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2012-04-18
      • 1970-01-01
      相关资源
      最近更新 更多