我想以这种方式打印我从Array拆分中获得的内容:
string="abc test;ABCtest.it"
IFS=';' read -a array <<< "$string"
name="${array[0]}"
url="${array[1]}"
echo -ne "\n$url,$name" >> "$outputDir/$fileName"
Run Code Online (Sandbox Code Playgroud)
但输出文件不包含url部分
我认为问题是"." 但我不知道如何解决它
如果我试试这个
echo $url
Run Code Online (Sandbox Code Playgroud)
这是工作!
谢谢
我也试过printf和硬编码的文件名,但没有!
printf '%s %s\n' "$url" "$name" >> test.txt
Run Code Online (Sandbox Code Playgroud)
似乎当我尝试在变量$ url之后连接另一个东西时,变量的某些部分被删除或覆盖到输出文件中
例如,如果我尝试这个
printf '%s %s\n' "$url" "pp" >> test.txt
Run Code Online (Sandbox Code Playgroud)
我用简单的cat test.txt得到的是:
pptest.it
Run Code Online (Sandbox Code Playgroud)
但变量$ url的内容必须是ABCTest.it
这很奇怪
OS X 10.6.5,BASH
当我运行这个:
echo $IP; echo of; echo $IPLINES
Run Code Online (Sandbox Code Playgroud)
我得到这个输出:
219.80.4.150:3128
of
1108
Run Code Online (Sandbox Code Playgroud)
当我运行这个:
echo $IP of $IPLINES
Run Code Online (Sandbox Code Playgroud)
我得到这个输出:
of 1108.150:3128
Run Code Online (Sandbox Code Playgroud)
我期望得到:
219.80.4.150:3128 of 1108
Run Code Online (Sandbox Code Playgroud)
什么会导致我得到的扭曲输出?
实际的脚本是这样的:
#!/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
Run Code Online (Sandbox Code Playgroud)