小编Ors*_*ong的帖子

登录 FreeBSD ssh 时使用 bash shell

我正在寻找一种方法来确保我的命令在某些使用 csh 作为默认 shell 的 FreeBSD 11 机器上由 bash 执行。

以下是我在 Linux CentOS / Debian / MacOS X / pfSense 2.3(在 FreeBSD 10.3 上运行)甚至 Windows 10 bash 上运行的代码,但在 FreeBSD 11 上不起作用

cat "/some/filelist" | ssh -i "/home/user/.ssh/some_key" user@freebsd11  'bash -c "while read -r file; do stat -f \"%N;%c;%m\" \"\$file\"; done | sort"'
Run Code Online (Sandbox Code Playgroud)

FreeBSD 11 上前一个命令的输出似乎是一个 csh 错误消息

Unmatched ".
Run Code Online (Sandbox Code Playgroud)

在检查哪个 shell 运行时,似乎是 csh 运行。以下返回“csh”

ssh -i /home/user/.ssh/some_key user@freebsd11 'bash -c "echo $0"'
Run Code Online (Sandbox Code Playgroud)

根据我的理解,BSD 系统不允许更改 shell,除非使用 heredoc,但我不能使用 heredoc 发送 cat "/some/filelist" …

freebsd ssh shell bash bsd

5
推荐指数
1
解决办法
852
查看次数

标签 统计

bash ×1

bsd ×1

freebsd ×1

shell ×1

ssh ×1