Вставить: объединить строки для каждой строки, вплоть до количества строк в наименьшем файле row-ct

Параметры оболочки не наследуются между сеансами оболочки, и здесь вы имеете дело с двумя сеансами оболочки:

  1. Интерактивный сеанс, в котором вы устанавливаете параметры оболочки и
  2. Сеанс сценария оболочки, в котором вы проверяете параметр.

Сценарий оболочки никогда не обнаружит, что параметр был установлен в вызывающем сеансе интерактивной оболочки.

Решения:

  1. Превратите свой код в функцию оболочки (, например.$HOME/.bashrc):

    checknoclobber () { [ -o noclobber ] && echo 'Noclobber is on'; }
    

    Или, для общего случая,

    checkoption () {
        if [ -o "$1" ]; then
            printf '%s is set\n' "$1" >&2
            return 0
        else
            printf '%s is not set (or invalid option name)\n' "$1" >&2
            return 1
        fi
    }
    
  2. Установите параметр в скрипте.

  3. Откройте файл сценария в интерактивной оболочке с помощью sourceили команды ..

0
11.02.2020, 23:06
1 ответ

Попробуйте

$ awk -F, 'FNR == NR {T[NR] = $0; next} {$0 = T[FNR] OFS $0} NF == 4' OFS=, file[12]
a,x,y,z
b,p,d,q
1
28.04.2021, 23:23

Теги

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