我stty, not a typewritter在hpux上看到消息(尽管有交互式终端检查?),我猜这些是由于我的.kshrc文件中的stty行:
case $- in
*i* )
stty hupcl ixon ixoff
stty erase '^?' kill '^U' intr '^C' eof '^D' susp '^Z'
;;
esac
Run Code Online (Sandbox Code Playgroud)
两个问题:
1)我知道擦除线为什么存在,因为没有它就没有退格.我继承了这些.kshrc行,但不知道他们做了什么.
有人知道hupcl ixon ixoff线的意义吗?stty手册页不是特别有启发性:
hupcl (-hupcl) Hang up (do not hang up) modem connection on
last close.
ixon (-ixon) Enable (disable) START/STOP output control.
Output is stopped by sending an ASCII DC3 and
started by sending an ASCII DC1.
ixoff (-ixoff) Request that the system send (not send)
START/STOP characters when …Run Code Online (Sandbox Code Playgroud) 有人知道是否可以在 tty 之间转移工作吗?
示例:在 ttys004 启动作业,按 Ctrl+Z 将其分离,输入 bg 1 将其移至后台。然后我想从示例 ttys002 到达它。
在Linux BusyBox 命令中存在microcom与串行调制解调器通信的命令:
BusyBox v1.13.2 (2012-05-10 17:13:08 CEST) multi-call binary
Usage: microcom [-d DELAY] [-t TIMEOUT] [-s SPEED] [-X] TTY
Copy bytes for stdin to TTY and from TTY to stdout
Options:
-d Wait up to DELAY ms for TTY output before sending every next byte to it
-t Exit if both stdin and TTY are silent for TIMEOUT ms
-s Set serial line to SPEED
-X Disable special meaning of NUL and Ctrl-X from stdin
Run Code Online (Sandbox Code Playgroud)
我没有使用stdin来键入AT命令,而是将它们放入文本文件并将该文件的内容重定向为上述命令的stdin.例如,我有一个文件 …
我正在编写一个将从cron调用的bash脚本.
bash脚本运行一个python命令,通过使用pythons os.isatty函数检测它何时在终端中, 并输出不同的东西,具体取决于它是手动运行还是通过cron运行.这使得调试非常困难,我想这样做,以便它总是假设它不在TTY中.
我希望能够在bash脚本中添加一些内容来欺骗它不在终端中运行的python脚本,因此总是输出相同的东西.
为了确认,我控制了bash脚本,但不想编辑python,因为这是一个打包的应用程序.
有任何想法吗?
我希望这是有道理的.
非常感谢你提前.
据我所知terminfo(5),kcuu1 应该是按下向上箭头时终端发送的序列。我从来没有见过除了^[[A(现在谈论cat,搞乱终端设置等)以外的任何东西。那么,鉴于我使用的终端(rxvt、gnome-terminal、iTerm)都默认为 TERM=xterm,为什么不是 kcuu1 \E[A?
我看到 cuu1是 \E[A,但是(再次从手册页),这是我应该发送到终端以移动光标的字符串,而不是终端发送给我的字符串。
顺便说一句,这是 OS X 的情况。
我正在尝试使用ssh在远程服务器上做一些工作 - 并且从node.js在本地机器上调用ssh
脚本的精简版本如下所示:
var execSync = require("child_process").execSync;
var command =
'ssh -qt user@remote.machine -- "sudo mv ./this.thing /to/here/;"';
execSync(command,callback);
function callback(error,stdout,stderr) {
if (error) {
console.log(stderr);
throw new Error(error,error.stack);
}
console.log(stdout);
}
Run Code Online (Sandbox Code Playgroud)
我收到了requiretty错误sudo: sorry, you must have a tty to run sudo.
如果我ssh -qt user@remote.machine -- "sudo mv ./this.thing /to/here/;"直接从命令行运行 - 换句话说,直接从tty运行 - 我没有错误,并且this.thing移动/to/there/得很好.
这是部署脚本的一部分,它真的不适合添加!requiretty到sudoers文件.
反正有没有让node.js在tty中运行命令?
我想捕获另一个进程的输出(例如git status),对其进行处理,并使用所有样式(粗体、斜体、下划线)和颜色进行打印。进一步处理它对我来说非常重要String,我不想只打印它。
在 Unix 世界中,我认为这会涉及转义码,我不确定 Windows 世界,但这对我也很重要。
我知道如何在没有颜色的情况下做到这一点:
fn exec_git() -> String {
let output = Command::new("git")
.arg("status")
.output()
.expect("failed to execute process");
String::from_utf8_lossy(&output.stdout).into_owned()
}
Run Code Online (Sandbox Code Playgroud)
也许我应该改用spawn?
我正在使用EC2 UserData来引导实例.
TRacking bootstrap执行日志/var/log/cloud-init-output.log,我发现脚本停在:
+ docker-compose exec web python /var/www/flask/app/db_fixtures.py
the input device is not a TTY
Run Code Online (Sandbox Code Playgroud)
看起来这个命令它以交互模式运行,但为什么呢?以及如何为此命令强制非交互模式(docker-compose exec)?
我一直在我创建的虚拟环境中运行 python 脚本pipenv shell,它运行良好。
我总是从 bash 脚本运行该进程,该脚本将目录更改为包含 python 脚本的文件夹,使用 激活 virtualenv pipenv shell,然后运行 python 脚本,然后退出 virtualenv。
但是,我一定在终端中输入了错误的内容并破坏了某些内容,现在当我在虚拟环境中运行脚本时,我得到了这个:
Launching subshell in virtual environment...
Traceback (most recent call last):
File "/home/manuel/.local/bin/pipenv", line 8, in <module>
sys.exit(cli())
File "/home/manuel/.local/lib/python3.8/site-packages/pipenv/vendor/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/home/manuel/.local/lib/python3.8/site-packages/pipenv/vendor/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/home/manuel/.local/lib/python3.8/site-packages/pipenv/vendor/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/manuel/.local/lib/python3.8/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/manuel/.local/lib/python3.8/site-packages/pipenv/vendor/click/core.py", line 610, in invoke
return callback(*args, …Run Code Online (Sandbox Code Playgroud) 我在 Windows 10 上使用 Git Bash。我想导入一个 SQL 文件以在我的 PostGres 12 本地数据库中运行。我尝试了下面的
$ PGPASSWORD=$DB_PASSWORD psql -U${DB_USER} $DB_NAME < scripts/my-script.sql
stdin is not a tty
Run Code Online (Sandbox Code Playgroud)
当我查看数据库时,脚本尚未运行,这使我相信错误消息告诉了我原因,但我不确定它的含义或如何修复它。