Параметры оболочки не наследуются между сеансами оболочки, и здесь вы имеете дело с двумя сеансами оболочки:
Сценарий оболочки никогда не обнаружит, что параметр был установлен в вызывающем сеансе интерактивной оболочки.
Решения:
Превратите свой код в функцию оболочки (, например.$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
}
Установите параметр в скрипте.
Откройте файл сценария в интерактивной оболочке с помощью source
или команды .
.
Попробуйте
$ 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