问题标签 [non-interactive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
470 浏览

linux - 使用 rc.local 回显命令的密码

我们有一个命令来处理我们的 RHEL7 服务器与 Sudo 的 Privilege Manager 的连接,该命令在从 rc.local 脚本运行时不起作用。下面的命令使用更通用的名称而不是我们的特定资产。

回声“密码” | /opt/quest/sbin/pmjoin_plugin -b -a -v -q -d masterport=12345 -d FailOverTimeOut=10 -d selecthostrandom=YES somehostname.com someotherhostname.com >> /var/log/Build.log

该命令在手动运行或从其他 bash 脚本运行时可以完美运行,但是当它从 rc.local 中执行时,就好像在提示输入密码时密码没有被输入到命令中一样。

我读过一些建议,例如“plymouth quit”,但没有帮助。

任何人都有在 rc.local 脚本中以这种方式将密码“回显”到命令的经验,以便您可以通过提示输入密码的交互式脚本继续操作?

最终,这只是我们希望在第一次启动实例时运行的东西。因此,如果有另一种方法可以让 shell 脚本在启动时运行一次,然后在没有 rc.local 的情况下自行删除,那么我们也可以探索这条路线(crontab 等?)。

0 投票
1 回答
683 浏览

launchd - 使用 Googlesheets 包的非交互式自动刷新陈旧 OAuth 令牌

我正在尝试自动运行一个 r 脚本以每小时下载一个私人 Google 表格。当我以交互方式使用 R 时,它总是可以正常工作。在我使用launchd.

在我开始使用launchd. 我认为问题在于一小时后访问令牌发生了变化,并且非交互式版本没有等待 OAuth 令牌的自动刷新。这是我从错误报告中得到的错误:

自动刷新陈旧的 OAuth 令牌。gzfile(file, mode) 中的错误:无法打开连接调用:gs_auth ... -> -> cache_token -> saveRDS -> gzfile 另外:警告消息:在 gzfile(file, mode) 中:无法打开压缩文件'。 httr-oauth',可能的原因'权限被拒绝'执行停止

我正在使用 Jenny Bryan 的 googlesheets 包。这是我最初用于注册工作表的代码,然后保存 oAuth 令牌:

然后我在我自动化的文件中使用以下脚本launchd

使用自动运行脚本时如何避免此错误launchd

0 投票
1 回答
89 浏览

bash - 从脚本中,我如何检查一个函数是否存在于交互式 shell 中?

我正在为一些包装脚本编写一个设置文件,并将这些脚本映射到底层命令的完成。

在我的 .bash_profile 中,这会将 git 的完成映射到 git_wrapper:

在我的 setup.sh 中,以下内容不起作用,因为脚本不是交互式的(type _git失败,因为_git在非交互式 shell 中不可用):

在 setup.sh 中,如何检查 _git 补全是否可用于交互式 shell?

0 投票
1 回答
5944 浏览

linux - Gatttool 非交互模式 --char-write

仍在询问 BLE 设备和gatttool.

我可以在交互模式下发送一个 char-write-cmd,但我不能在非交互模式下做同样的事情。

这是我在交互模式下发送的:

通过这种方式,我启动了警报服务,在我的情况下,它会发出蜂鸣器声音。

理论上,非交互模式应该是:

但这不会向开发板发送请求命令事件,我正在使用开发板进行检查。

0 投票
1 回答
3701 浏览

azure - 以非交互方式向 Azure REST API for PowerBi Embedded Report 进行身份验证时出现 403 Forbidden

我是 Azure ActiveDirectory 和 Power Bi Embedded 的新手。

我有一个 ASP.net WebForms 应用程序,我想在其中显示一些 PowerBi 报告。当我以交互方式进行身份验证时,一切正常,我得到了我的令牌并能够访问我的报告。(遵循GitHub 上的优秀示例)这些示例是交互式登录并使用 AcquireTokenByAuthorizationCode() 方法。

但是,我不希望我的用户必须使用任何帐户创建/登录,只想呈现报告以供他们使用。

所以我用我的clientID和clientSecret设置了一个ClientCredential(cc)。因此,我将其与 AquireToken 方法一起使用:

但是,当我将其添加到请求标头时,这成功地为我获取了一个令牌:

响应总是失败并出现“403 Forbidden”错误:

我查看了其他示例,许多都使用异步方法来获取令牌,但我不是。

谁能建议我如何克服这些 403 错误,以便我可以简单地向我的用户提供报告(出于安全考虑,我不想公开发布它们)。

预先感谢您!

0 投票
1 回答
636 浏览

bash - 在非交互式 shell 中替代导出变量

我有一个要求,其中需要执行一个需要设置一些环境变量的脚本。通常需要以下内容:

1)我登录到目标节点,比如 T1 使用 'user1' 并设置我的环境变量,比如 TEMPDIR=~/tmp; 做一个源 ~/.bashrc 并注销。

2) 现在我需要执行非交互式 shell 脚本。这是登录到管理服务器并运行命令:ssh user1@T1 "sudo -u user2 /path/filescript"

我执行的文件脚本需要设置 TEMPDIR。

上述设置不起作用,因为在非交互式 shell 期间没有获取 bash shell(如果我的理解是正确的)。为了克服这个问题,我尝试了本网站和其他网站中提供的以下建议,但没有任何运气:

ssh user1@T1 "source ~/.bashrc; sudo -u user2 /path/filescript"

ssh user1@T1 "sudo -u user2 env -i /path/filescript"

请帮忙。谢谢。

注意:我正在尝试在没有 root 干预的情况下完成此操作(我的意思是使用 root 设置/取消设置任何变量。

0 投票
2 回答
1693 浏览

docker - 在 Dockerfile 中执行 dpkg-reconfigure wireshark-common

您如何dpkg-reconfigure wireshark-common在 Dockerfile 中执行操作?

我的 Docker 文件包含: RUN apt-get install wireshark --yes

但是这--yes不影响这dpkg-reconfigure wireshark-common一步,所以我不清楚如何对屏幕上的问题回答“是”甚至“否” Should non-superusers be able to capture packets?

0 投票
2 回答
277 浏览

shell - 为非交互式 shell 禁用 .zshenv 输出

.zshenv会产生一些只有在我的 shell 是交互式的时候才有用的输出。在其他情况下,当 shell 不是交互式的时,这个输出(即当我运行脚本时)必须被隐藏。

如何抑制.zshenv非交互式 shell 的输出?

PS我在下面添加了我当前的解决方案,但它对我来说似乎很骇人听闻。

0 投票
0 回答
135 浏览

git - csh 别名在非交互式 shell 中不可用

我在linux环境中工作,用户的shellcsh默认配置为。我正在编写一个git post-receive钩子,它应该作为非交互式csh外壳中的用户触发。

我的 git hook 具有以下行。这样我可以检查环境中是否配置了正确的版本。

正确的版本.cshrc.private以两种方式配置:

  • setenv

    /li>
  • alias

    /li>

我注意到这是setenv PATH有效的,但alias没有在脚本中提取- 导致挂钩中使用的版本不正确。用符号链接替换它并且 PATH 条目确实有效。

什么会导致这种行为?

0 投票
2 回答
861 浏览

bash - 是否可以在非交互模式下运行 WSL Bash?

有人可能想在任务计划程序中使用 Windows 上的 Bash,或者将其用作版本控制挂钩脚本。是否可能或支持?

如果不是,为什么?这是一个错误还是防止某些问题的措施?