Межпретор CentOS 7 сценария оболочки

Это должно сделать это. Обратите внимание, что это предполагает, что строки из обоих файлов имеют то же число столбцов.

awk '
    {
            getline file2_line <"file2";
            split(file2_line, fields_from_file2);

            cur = 1;
            while ( cur <= NF )
            {
                    printf("%s ", $cur * fields_from_file2[cur]);
                    cur++;
            }

            printf("\n");
    }
    ' file1
3
21.04.2015, 00:51
2 ответа

На самом деле, на CentOS 7, /bin/sh является символической ссылкой на /bin/bash, который является оболочкой, доступной по умолчанию на большинстве дистрибутивов Linux.

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4  9 febr. 08:21 /bin/sh -> bash

(Если вышеприведенная команда возвращает Нет такого файла или директории, то Вы правы, у Вас возникнет проблема. Тогда вы можете запустить , который sh, чтобы узнать правильный путь)

Так что в случае, если у вас один и тот же вывод, что и у меня, используя #!/bin/sh и #!/bin/bash, вы получите один и тот же результат.

В качестве альтернативы, вы можете использовать этот shebang: #!/usr/bin/env sh или #!/usr/bin/env bash. В этом случае будет запущен первый sh или bash, доступный в Вашей PATH, независимо от того, что sh установлено в /bin, /usr/bin, или где угодно. Хотя это может быть удобно для переноса, обратите внимание, что это может иметь некоторые проблемы с безопасностью, если у вас есть несколько исполняемых файлов с именами sh в вашей PATH.

3
27.01.2020, 21:16

Вы можете позвонить в нее, любой переводчик, который вы хотите (Bash, CSH, ZSH, SH, Perl или что-нибудь).

#! / BIN / SH POSIXLY-правильно, и он должен работать.

Что является выходом из LS / BIN | GreeP S ?

Кроме того, вы можете проверить ваши файловые разрешения. Это убило меня, когда я писал свои первые сценарии ( chmod + x. / Myscript.sh).

2
27.01.2020, 21:16

Теги

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