Извлечь столбец CSV, содержащий пробелы, в массив Bash

Вы можете использовать /sbin/sysctl kernel.core_patternбез root-доступа для просмотра текущего шаблона именования файлов ядра.

Если шаблон не начинается с символа /, файл ядра будет создан относительно текущего рабочего каталога программы, создающей дамп ядра. Итак, если ваша программа находится в $HOME/myprogram, сделайте это:

cd /location/with/enough/space/and/writable/for/you
$HOME/myprogram

Теперь дамп ядра должен создаваться в нужном месте, а не в $HOME.

0
25.03.2020, 18:37
1 ответ

Stack Overflow имеет пробел, поэтому при назначении массиву он обрабатывается как две разные переменные. В BASHи даже в других оболочках, таких как KSHи т. д., имена переменных не могут содержать пробелов, поэтому переменная типа Stack Overflowне будет работать, даже если она будет заключена в одинарные или двойные кавычки.

Вы можете увидеть это с помощью следующих команд:

export Stack Overflow=name
echo $Stack Overflow 

Вывод будет Overflow, так как аргументом для echoявляется, по сути, $Stack, который не был объявлен или ему не присвоено значение, и слово Overflow.

echo $Overflow

Будет выведено name, так как команда exportприсвоила это значение переменной Stackс помощью Overflow=name.

Если вы попробуете что-то из этого:

export "Stack Overflow'=name
export 'Stack Overflow'=name

Вы получите сообщение об ошибке -bash: export: Stack Overflow=name': not a valid identifierили -bash: export: Stack Overflow=name': not a valid identifier.

Вместо этого вы можете поместить знаки подчеркивания между двумя строками.:

export Stack_Overlow=name

Таким образом, echo $Stack_Overflowбудет выводить name. Это потребует от вас дополнительной работы, потому что то, что у вас есть в файле CSV, содержит пробелы.

0
19.03.2021, 02:32

Теги

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