Перенаправление не отображается в качестве аргумента для сценария источника

Моя проблема в том, что я не могу печатать на экране, когда пишу скрипт bash

. myBashScript.sh < text.txt 

В myBashScript.sh я просто распечатываю

 echo $2 

Но вместо того, чтобы печатать «text.txt», он показывает «newLine». Как мне известно, «<» – это новая строка.

Почему $2 не text.txt ?

  • Как перенаправить все записи и чтения из / sdcard / whatsapp / to / sdcard / shared / on android?
  • Как не создать файл nohup.out, но сохранить вывод терминала?
  • Как запустить процесс в окне терминала, а затем скрыть это окно?
  • Безопасно ли использовать fd 3?
  • stdin 'hop' над процессом?
  • Почему эти две команды «cat» приводятся по-разному?
  • tee stdout to stderr?
  • Итерировать файлы в папке
  • One Solution collect form web for “Перенаправление не отображается в качестве аргумента для сценария источника”

    Я предполагаю, что вы на самом деле печатаете

     ./myBashScript.sh < text.txt 

    с косой чертой.

    Когда вы запускаете ./myBashScript.sh < text.txt , ваша интерактивная оболочка фактически захватывает < text.txt и интерпретирует ее как специальную инструкцию – в частности, она интерпретирует вашу командную строку как означающую, что она должна запускать myBashScript.sh со стандартным вход подключен к text.txt. Затем ваша оболочка удаляет < text.txt из командной строки перед передачей управления myBashScript.sh. Что касается вашего сценария оболочки, он получает нулевые аргументы, а $2 пуст. Ваш скрипт переводится просто так:

     echo 

    который печатает новую строку.

    Если вы хотите на самом деле напечатать имя файла, вам следует рассмотреть

     #!/bin/sh echo $1 

    которые вы можете запустить:

     $ ./myShellScript text.txt text.txt 

    Если, с другой стороны, вы хотите распечатать содержимое файла, вы должны использовать cat (1); ваш сценарий оболочки должен быть

     #!/bin/sh cat $1 

    которые вы можете запустить:

     $ ./myShellScript text.txt Hello from text.txt, a file containing a bunch of test strings. 
    Interesting Posts

    Как установить программы в / usr / local, если они не должны компилироваться с помощью root?

    Может ли RPM управлять файлами в домашней папке без подтверждения?

    Почему я не могу войти напрямую с помощью SSH

    Разделение гигантских файлов на определенное количество строк

    Как захватить вывод mplayer в файл?

    Получение PID команды ранее в Pipeline

    TwinView: переключаемое размещение (справа / слева)

    Как заблокировать устройства USB на основе класса устройств в Linux

    Как получить UUID для USB-накопителя?

    Сравнение строк со специальными символами с использованием if-loop не работает

    Конфигурация – apache2.conf на Debian

    Обнаружение сценария, вызвавшего неудачные соединения MySQL

    Почему многозначительно игнорируют мои подстановочные знаки?

    whats является командой для конкретных конкретных компонентов компонента?

    Какая конфигурация фильтра в скорости ядра ограничивает исходящие пакеты до 1packet / sec?

    Linux и Unix - лучшая ОС в мире.