【发布时间】:2014-01-08 13:21:41
【问题描述】:
下面是启动shell的inittab文件入口。
::respawn:/bin/bash < /dev/ttyS0 > /dev/ttyS0 2> /dev/ttyS0
我的问题是,我正在阅读一个配置文件,其中说明需要在哪个 tty 端口 /bin/bash 上重新生成。文件内容可能是ttyS0、ttyS1 或ttyS2。
如何根据文件内容重生/bin/bash。
【问题讨论】:
下面是启动shell的inittab文件入口。
::respawn:/bin/bash < /dev/ttyS0 > /dev/ttyS0 2> /dev/ttyS0
我的问题是,我正在阅读一个配置文件,其中说明需要在哪个 tty 端口 /bin/bash 上重新生成。文件内容可能是ttyS0、ttyS1 或ttyS2。
如何根据文件内容重生/bin/bash。
【问题讨论】:
假设你的配置文件是/etc/dynshell.cfg 并且在一行中包含设备名称(如ttyS0),没有其他内容,你可以这样写……
#!/bin/sh
port=/dev/$(</etc/dynshell.cfg)
exec /bin/bash <$port >$port 2>$port
...进入/usr/local/sbin/dynshell,然后使用这一行:
::respawn:/usr/local/sbin/dynshell
虽然这可能更好/更安全:
#!/bin/sh
port=/dev/$(</etc/dynshell.cfg)
exec /bin/bash 0<>$port >&0 2>&0
【讨论】: