pt1*_*lol 6 linux terminal sudo root visual-studio-code
我想将本地部署命令迁移到 VSCode 任务。我需要以 root 身份运行它们。当我在终端中执行这些操作时,系统只要求我提供一次密码。
$ sudo echo hello
[sudo] password for pt12lol:
hello
$ sudo echo hello
hello
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我配置 VSCode 任务时:
{
"version": "2.0.0",
"tasks": [
{
"label": "Hello task",
"type": "shell",
"command": "sudo echo hello"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想它在单独的会话中运行每个任务,并且每次都要求我提供密码。
> Executing task: sudo echo hello <
[sudo] password for pt12lol:
hello
Terminal will be reused by tasks, press any key to close it.
> Executing task: sudo echo hello <
[sudo] password for pt12lol:
hello
Terminal will be reused by tasks, press any key to close it.
Run Code Online (Sandbox Code Playgroud)
是否可以设置任务部署,以便保留最后的会话并且不需要我输入密码?
joe*_*hmo -2
我也遇到了这个问题,这个问题帮助了我。在 Linux 中,您无法显式地将密码传递给sudo,但有一些方法可以解决这个问题。
echo password | sudo -S command
将password使用参数通过管道输入 sudo -S。从sudo 手册页:
-S -S (stdin) 选项使 sudo 从标准输入而不是终端设备读取密码。密码后必须跟有换行符。
修改你的代码在我的机器上产生了预期的效果。
{
{
"version": "2.0.0",
"tasks": [
{
"label": "Hello task",
"type": "shell",
"command": "echo password | sudo -S echo hello"
}
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
815 次 |
| 最近记录: |