问题标签 [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.
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 等?)。
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
?
bash - 从脚本中,我如何检查一个函数是否存在于交互式 shell 中?
我正在为一些包装脚本编写一个设置文件,并将这些脚本映射到底层命令的完成。
在我的 .bash_profile 中,这会将 git 的完成映射到 git_wrapper:
在我的 setup.sh 中,以下内容不起作用,因为脚本不是交互式的(type _git
失败,因为_git
在非交互式 shell 中不可用):
在 setup.sh 中,如何检查 _git 补全是否可用于交互式 shell?
linux - Gatttool 非交互模式 --char-write
仍在询问 BLE 设备和gatttool
.
我可以在交互模式下发送一个 char-write-cmd,但我不能在非交互模式下做同样的事情。
这是我在交互模式下发送的:
通过这种方式,我启动了警报服务,在我的情况下,它会发出蜂鸣器声音。
理论上,非交互模式应该是:
但这不会向开发板发送请求命令事件,我正在使用开发板进行检查。
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 错误,以便我可以简单地向我的用户提供报告(出于安全考虑,我不想公开发布它们)。
预先感谢您!
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 设置/取消设置任何变量。
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?
。
shell - 为非交互式 shell 禁用 .zshenv 输出
我.zshenv
会产生一些只有在我的 shell 是交互式的时候才有用的输出。在其他情况下,当 shell 不是交互式的时,这个输出(即当我运行脚本时)必须被隐藏。
如何抑制.zshenv
非交互式 shell 的输出?
PS我在下面添加了我当前的解决方案,但它对我来说似乎很骇人听闻。
git - csh 别名在非交互式 shell 中不可用
我在linux环境中工作,用户的shellcsh
默认配置为。我正在编写一个git
post-receive
钩子,它应该作为非交互式csh
外壳中的用户触发。
我的 git hook 具有以下行。这样我可以检查环境中是否配置了正确的版本。
正确的版本.cshrc.private
以两种方式配置:
/li>setenv
/li>alias
我注意到这是setenv PATH
有效的,但alias
没有在脚本中提取- 导致挂钩中使用的版本不正确。用符号链接替换它并且 PATH 条目确实有效。
什么会导致这种行为?
bash - 是否可以在非交互模式下运行 WSL Bash?
有人可能想在任务计划程序中使用 Windows 上的 Bash,或者将其用作版本控制挂钩脚本。是否可能或支持?
如果不是,为什么?这是一个错误还是防止某些问题的措施?