问题列表 - 第297980页

Bash - 正确清除最后一个输出

我正在尝试创建一个可更新的进度状态。为了做到这一点,我需要能够完全清除最后一个输出,以便我可以更新它。回车可以工作,但是当输出超过终端宽度并回绕时,将无法清除最后一个输出。所以我正在使用 tput:

n=0
while [[ $n -ne 100 ]]; do
    n=$((n+1))
    tput ed #clear
    tput sc #save cursor
    echo -n "Progress: ${n}%"
    tput rc #restore cursor
    sleep 1s
done
echo
Run Code Online (Sandbox Code Playgroud)

但是,如果输出足够长以致于强制终端向上滚动,这将失败。发生这种情况时,保存的光标位置不再正确,并且无法正确清除最后的输出。

例如,如果光标当前在终端的底部并且输出比终端宽度长,则会强制终端向上滚动,使之前保存的光标位置无效。

那么有没有什么办法可以保证Bash中的光标永远不会到终端结束呢?或者也许还有其他一些替代方法来防止这个问题?

编辑:我根据 F. Hauri 的回答制作了我自己的版本,简化了我的用例

#!/bin/bash
str=$(head -c 338 < /dev/zero | tr '\0' '\141')
len="${#str}"
col=$(tput cols)
lines=$(( ((len + col - 1) / col) - 1 ))

echo -ne "${str}\r"
(( len > col )) && tput cuu "$lines"

sleep 3s

tput ed
Run Code Online (Sandbox Code Playgroud)

bash tput

5
推荐指数
1
解决办法
171
查看次数

获取一列的最小值但选择多列

我有一张表如下:

ID     NAME     AMOUNT
______________________
 1      A          3
 1      B          4
 2      C          18
 4      I          2 
 4      P          9
Run Code Online (Sandbox Code Playgroud)

我想要每个 ID 的最小值(金额),但我仍然想显示其名称。所以我想要这个:

 ID     NAME     min(AMOUNT)
______________________
 1      A          3
 2      C          18
 4      I          2 
Run Code Online (Sandbox Code Playgroud)

ID 可以出现多次,名称也是如此。我试过这个:

SELECT ID, NAME, min(AMOUNT) FROM TABLE
GROUP BY ID
Run Code Online (Sandbox Code Playgroud)

但这当然是一个错误,因为我必须

GROUP BY ID, NAME
Run Code Online (Sandbox Code Playgroud)

但后来我明白了

 ID     NAME     AMOUNT
______________________
 1      A          3
 1      B          4
 2      C          18
 4      I          2 
 4      P          9
Run Code Online (Sandbox Code Playgroud)

我明白为什么,它会查找 ID + NAME 的每个组合的最小值(AMOUNT)。所以我的问题基本上是,如何选择多列(ID、NAME、AMOUNT)并仅获取一列的最小值,同时仍显示其他列?

我对 SQL 很陌生,但我似乎找不到答案。

sql

3
推荐指数
1
解决办法
2166
查看次数

在 Ionic 中使用表单会抛出 Error: NodeInjector: NOT_FOUND [ControlContainer]

我创建了一个带有表单的 Ionic 应用程序。没什么特别的(代码如下)。在我添加表单并使用表单组和其他东西之前,它工作得很好。当我开始添加表单组和所有连接的东西时,我收到此错误:

\n\n
\n

core.js:6260 错误错误:未捕获(承诺中):错误:NodeInjector:\n NOT_FOUND [ControlContainer] 错误:NodeInjector: NOT_FOUND\n [ControlContainer]\n 位于 getOrCreateInjectable (core.js:5894)\n 模块处。 \xc9\xb5\xc9\xb5directiveInject (core.js:21115)\n 在 NodeInjectorFactory.NgControlStatusGroup_Factory [作为工厂] (forms.js:1073)\n 在 getNodeInjectable (core.js:6025)\n 在 instantiateAllDirectives (core. js:12953)\n 在 createDirectivesInstances (core.js:12169)\n 在 \xc9\xb5\xc9\xb5elementStart (core.js:21298)\n 在 EditPage_Template (template.html:18)\n 在executeTemplate (core) .js:12129)\ n在renderView(core.js:11899)\ n在resolvePromise(zone-evergreen.js:798)\ n在resolvePromise(zone-evergreen.js:750)\ n在zone-evergreen.js :860\n 在 ZoneDelegate.invokeTask (zone-evergreen.js:399)\n 在 Object.onInvokeTask (core.js:41640)\n 在 ZoneDelegate.invokeTask (zone-evergreen.js:398)\n 在区域。 runTask (zone-evergreen.js:167)\n 在rainMicroTaskQueue (zone-evergreen.js:569)

\n
\n\n

我尝试了在网上找到的东西:\n从文件 app.module.ts 中的 @angular/forms 导入 Forms Module 和 ReactiveFormsModule

\n\n

这对我不起作用,并且我不断收到错误。

\n\n

我在 SO 上找到并尝试过的链接,但没有成功:

\n\n

Angular Error: …

ionic-framework angular

2
推荐指数
1
解决办法
5248
查看次数

如何从 mp4 视频创建视频块 (.ts) 和 .m3u8 文件?

我需要.ts从 mp4 视频创建固定持续时间(例如 5 或 10 秒)的视频块 ( )。我还需要不同格式的块(260p、480p、720p、1080p)。

我可以使用以下命令创建块和 m3u8:

ffmpeg -i input.mp4 -g 60 -hls_time 10 out.m3u8
Run Code Online (Sandbox Code Playgroud)

但无法创建如上所述的不同分辨率。

ffmpeg video-streaming http-live-streaming video.js

2
推荐指数
1
解决办法
2589
查看次数

在 C++ 中使用命名空间时出现“未命名类型”错误

在下面的代码中编写语句A::x=5给出了错误:

命名空间“A”中的“x”未命名类型

我们不能为x变量全局赋值吗?

#include <iostream>

int x = 10;  

namespace A
{
    int x = 20; 
}

A::x=5;

int main()
{
    int x = 30; 
    std::cout << "x = " << x << std::endl;
    std::cout << "A::x = " << A::x << std::endl;
    std::cout << "::x = " << ::x << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

c++ definition statements

5
推荐指数
1
解决办法
67
查看次数

接受任何 STL 容器的函数

我需要实现一个接受任何 STL 容器的模板函数。并基于什么样的容器来执行某些操作。

例子:

template <class Container, class T>
void func(Container<T> container) {
    if (container == std::map) {
        ...
    } else {
        ... 
    }
}


int main() {
    std::vector<int> v1; 
    func(v1); // ok
    std::vector<double> v2;
    func(v2); // ok
    std::map<int, double> m1;
    func(m1); // ok
    std::list<int> l1;
    func(l1); // ok
}
Run Code Online (Sandbox Code Playgroud)

c++ templates

2
推荐指数
1
解决办法
134
查看次数

获取图像生成错误图像 - Google App Script

我的目标是使用谷歌应用程序脚本的谷歌工作表中的信息创建谷歌文档。

我可以根据谷歌表格中的数据生成雷达图。雷达图如下所示:

雷达图看起来一切都很好

问题:当我将图表作为图像获取并将其粘贴到谷歌文档时。看起来一切都错了。看图片和代码。

雷达图不太好看

我的代码:

var chart = sheet.newChart()
   .setChartType(Charts.ChartType.RADAR)
   .setPosition(8,2,0,0)
   .setNumHeaders(1)
   .setOption('title', title)
   .addRange(sheet.getRange("A1:G1"))
   .addRange(sheet.getRange("A2:G2"))
   .setMergeStrategy(Charts.ChartMergeStrategy.MERGE_ROWS)
   .setTransposeRowsAndColumns(true)
   .setOption('vAxes',{0: {viewWindow: {min: 0, max: 100}}})
   .setOption('series', {0: {lineWidth: 4, color: '#FFA500'}})
   .build();

sheet.insertChart(chart);
var image = sheet.getCharts()[0].getBlob().getAs('image/png');

Run Code Online (Sandbox Code Playgroud)

我发现的最新类似帖子是这个:Automatting Radar Chart Generation in Google Doc using Google Apps Script

但那里没有给出答案。希望有人能帮忙。

编辑: 感谢 Tanaike,它现在可以工作了。对于任何想知道的人,这是我用来生成图表并将其插入谷歌文档的脚本。用图表替换文本。

var chart = sheet.newChart()
   .setChartType(Charts.ChartType.RADAR)
   .setPosition(8,2,0,0)
   .setNumHeaders(1)
   .setOption('title', title)
   .addRange(sheet.getRange("A1:G1"))
   .addRange(sheet.getRange("A2:G2"))
   .setMergeStrategy(Charts.ChartMergeStrategy.MERGE_ROWS)
   .setTransposeRowsAndColumns(true)
   .setOption('vAxes',{0: {viewWindow: {min: 0, max: 100}}})
   .setOption('series', {0: {lineWidth: 4, color: '#FFA500'}})
   .build();

sheet.insertChart(chart); …
Run Code Online (Sandbox Code Playgroud)

javascript google-apps-script radar-chart

4
推荐指数
1
解决办法
857
查看次数

Office365 autodiscover.xml 返回 403 Forbidden

我正在开发一个简单的基准测试脚本,它需要https://outlook.office365.com/autodiscover/autodiscover.xml提供的信息。我正在使用我的 Outlook.com 电子邮件凭据进行基本身份验证,并且在我的计算机上进行测试时它工作正常。

当我与我的同事(使用相同的凭据)共享脚本时,他收到了403 Forbidden请求的响应。经过一些试验和错误后,脚本似乎在我国内的多个不同网络上运行,但是一旦我从其他国家/地区运行它,我就会得到403 Forbidden. 由于这是一个基准脚本,因此我必须使用相同的凭据。

鉴于脚本始终相同,我无法获得有关可能导致问题的原因的任何信息,我怀疑这可能是一项安全功能,可阻止用户从不同国家/地区进行身份验证,但我找不到任何文档,甚至无法提及其中。

有没有人知道可能导致 403 的原因?

exchange-server autodiscovery exchangewebservices http-status-code-403

6
推荐指数
1
解决办法
1553
查看次数

如何在Python中使用for循环获取列表并且我们必须将每个元素的第一个字母大写?

给您一个字符串元素列表,并要求您返回一个列表,其中包含标题大小写的字符串中的每个元素,换句话说,字符串的第一个字符为大写,其余所有字符为小写

输入示例:

['VARMA', 'raj', 'Gupta', 'SaNdeeP']
Run Code Online (Sandbox Code Playgroud)

样本输出

['Varma', 'Raj', 'Gupta', 'Sandeep']
Run Code Online (Sandbox Code Playgroud)

python string for-loop list

0
推荐指数
1
解决办法
9867
查看次数

Spring Boot + Spring Security + CORS 中没有“Access-Control-Allow-Origin”

我正在尝试使用 Spring security 进行 CORS。这是我的 WebSecurityConfigurerAdapter :


@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .cors()
                .and()
                .authorizeRequests()
                .anyRequest()
                .authenticated()
                .and()
                .oauth2Login();
    }
    @Bean
    public CorsConfigurationSource corsConfigurationSource() {
        final CorsConfiguration configuration = new CorsConfiguration();
        configuration.setAllowedOrigins(List.of("*"));
        configuration.setAllowedMethods(List.of("HEAD", "GET", "POST", "PUT", "DELETE", "PATCH"));
        configuration.setAllowCredentials(true);
        configuration.setAllowedHeaders(List.of("Authorization", "Cache-Control", "Content-Type"));
        final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", configuration);
        return source;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的 WebMvcCofigurer :

@EnableWebSecurity
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer
{
    @Override
    public void …
Run Code Online (Sandbox Code Playgroud)

spring-security cors oauth-2.0 reactjs spring-boot

2
推荐指数
1
解决办法
1万
查看次数