为什么我不能在远程主机上执行命令。我想念什么吗?
bash文件:hello.sh
#!/bin/sh
host_name="myHost"
ssh $host_name '
STR="Hello World!"
echo $STR
'
executing above file: the print out:
> ./print_node_status.sh
Enter Windows password:
STR=Hello World!: Command not found.
STR: Undefined variable.
看起来您的远程外壳是C外壳,而不是bash。
您有几个选择:
- 调整您的代码以符合该外壳的语言:
ssh $host_name '
set STR="Hello World!"
echo $STR
'
- 在您的远程过程中执行
/bin/bash
,例如,例如:
ssh $host_name '
exec /bin/bash
STR="Hello World!"
echo $STR
'
- 将用户在该节点上的默认外壳更改为
/bin/bash
,请参阅chsh(1)
manpage。