在bash脚本中使用grep

在bash脚本中使用grep,bash,grep,Bash,Grep,我正在用Ubuntu编写一个bash脚本。我在内部使用grep: resultfolder=$(grep 'ResultsFolder' "$clientConfig" | cut -f2 -d '=') 因此,clientConfig是我要在其中搜索字符串“resultsFolder”的文件的绝对路径。 执行时,他给了我一个错误:没有这样的文件或目录 但是我可以在终端上执行这个命令,没有任何错误。这是因为他在实际知道之前使用了$clientConfig?我怎样才能解决这个问题呢 提前谢谢 您

我正在用Ubuntu编写一个bash脚本。我在内部使用
grep

resultfolder=$(grep 'ResultsFolder' "$clientConfig" | cut -f2 -d '=')
因此,clientConfig是我要在其中搜索字符串“resultsFolder”的文件的绝对路径。 执行时,他给了我一个错误:没有这样的文件或目录

但是我可以在终端上执行这个命令,没有任何错误。这是因为他在实际知道之前使用了
$clientConfig
?我怎样才能解决这个问题呢


提前谢谢

您应该只查看$clientConfig的值 在grep之前添加一个echo。 如果$clientConfig不止是一个文件,则需要删除其周围的双引号(“)

echo \#$clientConfig; grep 'ResultsFolder' "$clientConfig" | cut -f2 -d '=')

$clientConfig是一个文件,
echo$clientConfig
给出了下一个结果:

/groups/wall2-ilabt-iminds-be/projectfilip/videostreaming/libdashclient/emulationclient/client_config.ini
此结果是文件的正确路径。

请尝试以下操作:

resultfolder=$(awk -F= '/ResultsFolder/ {print $2}' "$clientConfig")

请提供更多的上下文。在
$clientConfig
中是什么,文件名还是什么?您提到了用于搜索模式的文件吗?在运行此命令之前,请尝试打印$clientConfig,并查看$clientConfig是否包含路径正确的文件。您的确切意思是“这是因为他在实际知道之前使用了$clientConfig吗?”ws this?“?是否在执行带grep的行后设置$clientConfig?如果$clientConfig是相对路径,请注意工作目录。'ResultsFoder'需要作为搜索模式。我还打印了clientConfig,它给出了真实路径。clientConfig是在执行该行之前设置的。我想知道他在h之前填充了这个$clientConfige开始执行脚本。