我知道已经有一些相关的问题,但不能让它对我有用!
所以我可以在命令行运行grep并且它工作正常,但如果我在bash脚本上执行此操作,则会出现以下错误:
grep: secondword:No such file or directory
我通过ssh连接到服务器,然后运行一些命令。服务器中grep的路径是/ bin / grep,但它仍然不起作用。以下是示例代码:
#!/bin/bash
$host="user@host";
ssh $host "
myinfo=\$(grep "word secondword" path/to/file);
"
我还验证了它没有使用Notepad ++在Windows中创建的CR。有想法该怎么解决这个吗?
编辑:
根据建议,我使用引号进行了以下更改:
#!/bin/bash
$host="user@host";
ssh $host "
myinfo=\$(grep \"word secondword\" path/to/file);
"
但现在我有一个非常奇怪的行为:它看起来像列出了主服务器路径上的所有文件。回显变量:
file1 file2 file 3
file4 file5 etc.
为什么这样做?我错过了什么吗?
答案 0 :(得分:-2)
请把脚本放在工作目录上。运行crontab时,它将作为用户主页作为默认路径。
#!/bin/bash
cd Your_Path
$host="user@host"
ssh $host
myinfo=\$(grep "word secondword" path/to/file)