неоднозначное перенаправление

Ошибка:

line 20: $1: ambiguous redirect

какова могла быть проблема

#! /bin/bash

while read line
do
    string=$line
    array=(${string//,/ })
    fileName=${array[0]}_"final_fitness.out"
    echo $line > vt.txt
    ./a.out vt.txt
    while read line1
    do
       if `echo ${line1} | grep "#" 1>/dev/null 2>&1`
       then
           echo "";
       else
            echo ${array[0]},$line1 >> full_log
            break;
       fi
    done < $fileName
done < $1
0
задан 27 April 2015 в 10:42

1 ответ

Вы запускаете свой сценарий без параметров (1$), например:

./myscript

Использование это:

./myscript my_parameter

И в Вашем сценарии существуют многочисленные проблемы:

   1  #! /bin/bash
   2  
   3  while read line
   4  do
   5      string=$line
   6      array=(${string//,/ })
   7      fileName=${array[0]}_"final_fitness.out"
   8      echo $line > vt.txt
               ^––SC2086 Double quote to prevent globbing and word splitting.
   9      ./a.out vt.txt
  10      while read line1
  11      do
  12         if `echo ${line1} | grep "#" 1>/dev/null 2>&1`
                ^––SC2092 Remove backticks to avoid executing output.
                ^––SC2006 Use $(..) instead of legacy `..`.
                      ^––SC2086 Double quote to prevent globbing and word splitting.
  13         then
  14             echo "";
  15         else
  16              echo ${array[0]},$line1 >> full_log
                       ^––SC2086 Double quote to prevent globbing and word splitting.
                                   ^––SC2086 Double quote to prevent globbing and word splitting.
  17              break;
  18         fi
  19      done < $fileName
                 ^––SC2086 Double quote to prevent globbing and word splitting.
  20  done < $1
             ^––SC2086 Double quote to prevent globbing and word splitting.
0
ответ дан 4 October 2019 в 08:13

Другие вопросы по тегам:

Похожие вопросы: