【问题标题】:Why won't cat work inside my bash-script?为什么 cat 不能在我的 bash 脚本中工作?
【发布时间】:2016-03-10 18:08:48
【问题描述】:

我希望能够显示我的命令列表文档的内容,但每当我这样做时,它只会打印出“./commands.txt”,但如果我在脚本之外尝试同样的事情,它就可以正常工作。

这是我的代码:

    helpFile="./commands.txt"

if [ "$com" = "help" ]
then
cat $helpFile
fi

【问题讨论】:

  • $com 是我用来确定用户输入了什么命令的变量。您在我的帖子中看到的只是一个命令。顺便说一句,它不起作用:/
  • 您是说不是commands.txt 的内容,而是看到文字输出./commands.txt 并且没有诸如“没有这样的文件或目录?”之类的周围错误。
  • 我使用read-command来设置$com。
  • 没错,就是那个人。
  • 你有没有像@Cyclone 建议的那样自己尝试过这个 sn-p?如果它是较大脚本的一部分,则该错误可能完全在其他地方,直到此时才会出现。

标签: bash file command cat display


【解决方案1】:

我发现出了什么问题。我的文本编辑器搞砸了,将所有新编辑的内容保存在桌面上,而不是包含脚本和文本文件的文件夹。无论如何,感谢您的所有帮助,我真的很感激:)

【讨论】:

  • 你应该删除这个问题。这个问题将来不太可能对其他人有所帮助。
  • 这真的是唯一的问题吗?我还是不明白你从哪里得到$com 变量?
【解决方案2】:

我看不出你从哪里得到 $com 变量,但如果你根据第一个参数设置它,这应该可以工作:

#!/bin/bash

helpFile="./commands.txt"
com=$1

if [ "$com" = "help" ]
then
  cat $helpFile
fi

在上面的例子中,$com 将被设置为传递给脚本的第一个参数,所以如果你想显示./commands.txt 的内容,你可以像./<script.sh> help 一样调用它

我还认为您应该检查该文件是否确实存在于当前工作目录中,或者尝试使用绝对路径,即:

helpFile="/home/commands.txt"

【讨论】:

    猜你喜欢
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    相关资源
    最近更新 更多