Улучшенный метод получения побочного значения из awk.

Согласно документации RHEL, вы не можете:

XFS quotas are not a remountable option. The -o quota option must be specified on the initial mount for quotas to be in effect.

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Storage_Administration_Guide/ch03s09.html#idp21353040

Также я попытался изменить пользовательскую (тестовую )квоту, используя:

xfs_quota -x /home
xfs_quota> report -hu
User quota on /home (/dev/mapper/cl_backup--server-home)
                        Blocks              
User ID      Used   Soft   Hard Warn/Grace   
---------- --------------------------------- 
root            0      0      0  00 [------]
test        11,4G     9G    10G  00 [-none-]

xfs_quota> limit bsoft=30g bhard=32g test
xfs_quota> report -hu
User quota on /home (/dev/mapper/cl_backup--server-home)
                        Blocks              
User ID      Used   Soft   Hard Warn/Grace   
---------- --------------------------------- 
root            0      0      0  00 [------]
test        11,4G    30G    32G  00 [------]

xfs_quota> q

2
24.10.2019, 19:36
1 ответ

Немного неуклюже, но вы можете напечатать команды оболочки в awkи оценить их вksh:

eval $( echo -e 1\\nA\\n2\\n3\\n4 |
  awk  'NR == 1 {printf"%s%s%s;","export var1=",$0, "\n"}
        NR > 2 {printf"%s%s%s;","echo -e '", $0, "'\n" }'
)

Выход:

2
3
4

$ echo $var1
1

Хотя оценка оболочки строки -по -может быть не самой простой, и в случае некоторых строк эхо может давать забавные результаты. Помните об этой опасности! Жесткие кавычки должны избегать этого:

eval $( echo -e 1\\nA\\n2\\n3\\n4 |
  awk  'NR == 1 {printf"%s%s%s;","export var1=",$0, "\n"}
        NR > 2 {printf"%s%s%s;","echo -e \x27", $0, "\x27\n" }'
)
1
27.01.2020, 22:02

Теги

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