shell脚本连接空格两个字符串

时间:2017-09-10 13:50:18

标签: linux bash shell

我有一个shell脚本需要在txt文件中提供以下模式

test0000 test0000@gmail.com
test0001 test0001@gmail.com

依此类推,直到停止条件(在这种情况下为10 ......)

目前无效,我尝试了以下内容:

start=“test”
email=“@gmail.com"
start=0
stop=10


i=0
while [[ $i -le 10 ]]
do
  printf "%s%10d\n" "$start” "$i" "\n" "$start” "$email"

任何想法如何解决?我收到错误:“@ gmail.com:”无效号码

2 个答案:

答案 0 :(得分:1)

使用不同的for循环语法的另一个示例:

start="test"
email="@gmail.com"

for i in {0000..9};do
    echo "${start}$i  ${start}${i}${email}"
done

test0000  test0000@gmail.com
test0001  test0001@gmail.com
test0002  test0002@gmail.com
test0003  test0003@gmail.com
test0004  test0004@gmail.com
test0005  test0005@gmail.com
test0006  test0006@gmail.com
test0007  test0007@gmail.com
test0008  test0008@gmail.com
test0009  test0009@gmail.com

或者,使用while循环:

start="test"
email="@gmail.com"
count=0

while [[ $count -lt 10 ]]; do
    printf '%s%04d   %s%04d%s\n' "$start" $count "$start" $count "$email"
    let count++
done

答案 1 :(得分:0)

您可以使用:

start='test'
email='@gmail.com'

for ((i=0; i<10; i++)); do
    printf '%s%04d   %s%04d%s\n' "$start" $i "$start" $i "$email"
done

test0000   test0000@gmail.com
test0001   test0001@gmail.com
test0002   test0002@gmail.com
test0003   test0003@gmail.com
test0004   test0004@gmail.com
test0005   test0005@gmail.com
test0006   test0006@gmail.com
test0007   test0007@gmail.com
test0008   test0008@gmail.com
test0009   test0009@gmail.com