linux 输入yes后不停的出现y,就像图中那样,请问该怎么解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 输入yes后不停的出现y,就像图中那样,请问该怎么解决?相关的知识,希望对你有一定的参考价值。

只要按完yes和回车就会这样

键盘有问题,建议拔掉键盘看看是否恢复
命令行终止可以ctrl c
但你这种连续自动输入终止应该还会出现,不是程序问题
参考技术A 如果前端控制 Crtl + C
如果后台脚本前端输入 killall yes
参考技术B ctrl C 快捷键
请采纳 谢谢追问

我想让他不出现

追答

你的y键 卡住了吧

参考技术C ctrl C 快捷键

放大后 y 轴在高图中未对齐

【中文标题】放大后 y 轴在高图中未对齐【英文标题】:y-axes misaligning in highcharts after zooming in 【发布时间】:2013-08-05 08:46:08 【问题描述】:

在我的应用程序中,我创建了一个 highcharts 对象,将 zoomtype 设置为 xy。由于值的范围不同,每个数据集都有自己的 y 轴(例如,一个数据集可能有无限的最大值,而其他基于百分比的值限制为 100/-100)。如果加载了只有正值的数据集和既有正值又有负值的数据集,我可以很好地对齐 y 轴的零点。

但是,在放大时,零点会错位。如果我放大 20 到 -10 的范围,没有任何负值的数据集将只显示 20 到 0 的范围。重置缩放后一切都很好。如果我使用 highcharts 默认添加的 y 轴,则柱形图的条在放大时会很好地对齐。但是,这并不能解决零点错位的问题。我已经遇到这个问题几天了,我似乎无法解决它。我尝试过使用 yAxis 设置和图表的其他设置,但这也没有为我解决任何问题。

任何帮助将不胜感激,如果需要,我可以提供我的一些代码。

添加y轴的代码:

function addYAxis(opposite)
chart.addAxis(

    // set ID to axis number
    id: yAxisCounter,

    // Don't align the labels on the y-axis
    alignTicks: false,

    // Don't allow decimals values on the axis labels
    allowDecimals: false,

    // set max padding to 0
    maxPadding: 0,

    // set minimum padding to 0 so the chart does not add any padding
    minPadding: 0,

    // Hide this axis if it doesn't have associated values and/or labels
    showEmpty: false,

    // Set the space between labels on the axis
    //tickInterval: tickInterval,
    tickPixelInterval: 25,

    // set the color of the gridlines in the chart
    gridLineColor: '#FFFFFF',

    // set the location of the yAxis
    opposite: opposite,

    // Construct label value that is shown when hovering over a bar in the chart
    labels: 
            formatter: function()
                return this.value;
            ,
            style: 

                // Set the color of the label text
                color: getColor(),

                // Set the letter size of the label text
                fontSize: 10
            
    
);


function addSeries(id, vals)
// Add a series of data to the chart;
chart.addSeries(

  // Construct series name
  name: id,

  // Construct identifier to we can distinguish different datasets
  identifier: id,

  // Set the data
  data: vals,

  // Link these series to the current y-Axis
  yAxis: yAxisCounter,

  // Make this series visible
  visible: true,

  // Don't add shadows'
  shadow: false,

  // Set the color of the bars associated to these values
  color: getColor()
);

重置缩放后的代码:

chart.axes[0].setExtremes(chart.axes[0].dataMin, chart.axes[0].dataMax);
var yAxes = chart.yAxis;
var negativeVals = false;

// Check if any of the yAxes contain negative values in the associated dataset
for (var axis in yAxes)
    var minVal = yAxes[axis].dataMin;
    if (minVal < 0)
        negativeVals = true;
    


// Loop through the y-axes
for (var axis in yAxes)

    // Get the min and max vals of the associated dataset
    var minVal = yAxes[axis].dataMin;
    var maxVal = yAxes[axis].dataMax;

    // If we have any negative values
    if (negativeVals)

        // Boolean to determine if the maximum value is larger than the minimum
        var maxGreaterThanMin = maxVal >= (minVal * -1);

        // If the maximum value is greater than the absolute minimum value
        if (maxGreaterThanMin)

            // Calculate min and max
            var maximum = maxVal;
            var minimum = maxVal * -1;

            // Set the extremes of the yAxis
            yAxes[axis].setExtremes(minimum, maximum, false);
        

        // If the absolute minval is greater than the max value
        else

            // Calculate the min and max
            var maximum = minVal * -1;
            var minimum = minVal;

            // Set the extremes of the yAxis
            yAxes[axis].setExtremes(minimum, maximum, false);
        
    

    // If there are no negative values present at all, we can set the range from 0 to maxVal
    else
        yAxes[axis].setExtremes(0, maxVal, false);
    



chart.xAxis[0].isDirty = true;
chart.redraw();

编辑:通过在放大时覆盖默认行为解决了这个问题。我使用选择事件的最小值和最大值来设置 x 轴的极值。之后,我将 y 轴的零值与重置缩放后调用的代码的编辑版本对齐。小提琴:http://jsfiddle.net/5m9JW/355/

希望这也可以帮助遇到同样问题的人。

【问题讨论】:

为什么不使用谷歌图表? developers.google.com/chart 我以前没有看过 Google Charts。我正在实施的应用程序基于之前创建的项目,该项目没有按预期工作。该项目使用了高图表,这似乎工作正常。但是,Google Charts 看起来很有趣,而且它似乎没有 Highcharts 复杂。当我有时间时,我会研究它。感谢您的提示! 无法编辑我之前的评论:出于安全原因,我们需要能够将 js 库存储在我们的服务器上,我怀疑我们可以使用 Google Charts 做到这一点。如果我们必须通过 Google API 加载库,并且有可能将数据发送到 Google,那就不行了。 【参考方案1】:

不幸的是,Highcharts 不提供将 yAxis 对齐到相同值的选项(例如您的情况下的 0 值)。我前段时间准备了两个轴的相同位置的示例:http://jsfiddle.net/5m9JW/349/您可能应该能够升级以获得更多轴的相同位置

while (chart.yAxis[1].translate(0) != chart.yAxis[0].translate(0) && i > 0) 
    chart.yAxis[0].setExtremes(chart.yAxis[0].getExtremes().min - chart.yAxis[0].translate(chart.yAxis[1].translate(0), true));
    i--;
;

另外,我认为toPixels()toValue() 会比translate() 更易于使用。

【讨论】:

感谢您的回答。加载新数据时,我已经完成了这项工作。但是,如果 y 轴上同时存在负值和正值,我正在寻找一种方法来放大并调用我的代码来对齐 y 轴的零点。我更新了你的小提琴并添加了 zoomType:'xy' 设置。制作类似的零后,尝试放大包含高于零的值以及低于零的值的区域。这将显示我的问题。 jsFiddle:jsfiddle.net/5m9JW/351【参考方案2】:

通过覆盖放大时的默认行为解决了这个问题。我使用选择事件的最小值和最大值来设置 x 轴的极值。之后,我将 y 轴的零值与重置缩放后调用的代码的编辑版本对齐。小提琴:http://jsfiddle.net/5m9JW/355/ 这个例子适用于多轴

See JS fiddle for my solution

希望这也可以帮助遇到同样问题的人。

【讨论】:

以上是关于linux 输入yes后不停的出现y,就像图中那样,请问该怎么解决?的主要内容,如果未能解决你的问题,请参考以下文章

linux。shell脚本:判断y/n,以及有默认值,直接回车的shell语句是啥?

linux bash 用户输入yes or no.

linux系统中使用fsck命令后文件系统被破坏的解决方法

Linux命令之yes

Linux命令之重复打印指定字符串yes

执行脚本sh install.sh后:需要输入1等待5秒并回车,等待10秒输入y并回车 ,如何用脚本完成这两个操作。