使用“at”命令时的命令行完成

使用“at”命令时的命令行完成

在提示符中输入命令时at>,我无法使用Tab键激活命令行自动完成功能。

$ at now + 4 hour
at> 

有没有办法在提示中打开制表符补全功能at>

我正在使用 CentOS 7 和 Bashat版本at-3.1.13-24.el7.x86_64

答案1

您可以使用交互式 shell 的此处文档功能来编写命令,并将结果at通过 stdin 传递给(而不是at打开并读取 stdin 本身):

$ cat <<EOF | at now + 4 hour
> echo 'doing stuff now' >/tmp/foo
> EOF
warning: commands will be executed using /bin/sh
job 22 at Wed Jun 10 16:11:00 2020

至少在我的系统(Ubuntu / bash 4.4.20(1))上,制表符补全在此处文档中工作 -/tmp/foo例如用于补全文件名。

答案2

可能不会:

 ldd /usr/bin/at
        linux-vdso.so.1 (0x00007ffd24182000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f70946ed000)
        libfl.so.2 => /usr/lib64/libfl.so.2 (0x00007f70946e8000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f70948f8000)

(我的)at没有链接到readline(或类似的东西)。

相关内容