gpt4 book ai didi

macos - 变量在 Bash 中用 "echo"覆盖文本问题

转载 作者:行者123 更新时间:2023-11-29 09:07:47 26 4
gpt4 key购买 nike

我使用 OS X 10.6.5,Bash。

当我运行这个时:

echo $IP; echo of; echo $IPLINES

我得到这个输出:

219.80.4.150:3128
of
1108

当我运行这个时:

echo $IP of $IPLINES

我得到这个输出:

 of 1108.150:3128

我希望得到:

219.80.4.150:3128 of 1108

什么会导致我得到的输出失真?

实际的脚本是这样的:

#!/bin/bash

IPLINES=`cat a.txt | wc -l | awk '{print $1}'`

if [ $IPLINES > 1 ]; then
LINE=`expr $RANDOM % $IPLINES + 1`
IP=`head -$LINE a.txt | tail -1`
sed -e "${LINE}d" -i .b a.txt

echo $IP of $IPLINES
fi

最佳答案

这里有一个疯狂的猜测:您正在从 .txt 文件中提取 IP 变量——如果这是一个 Windows 文件,或者是 Windows 风格的编码,则行以 \r\n 结尾。您去掉了换行符,但如果其中有一个 \r 让您回到行首怎么办?

不问任何问题的快速脏修复:使用 echo -n,它会在回显文本末尾取消换行符。

echo -n $IP; echo -n of; echo -n $IPLINES

如果问题依旧,可能就是我上面说的。尝试右修剪 $IP

编辑:抱歉,没看到 OSX 部分。在 OSX 中,行以 \r 结尾——这一定是问题所在。

关于macos - 变量在 Bash 中用 "echo"覆盖文本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4412118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com