So which dev-name should I use? is it sda?
No. inxi
reporta su disco duro como /dev/sda
, y el disco óptico como/dev/sr0
(también vinculado a/dev/cdrom
):
Drives: HDD Total Size: 1000.2GB (3.7% used) 1: id: /dev/sda model: ST1000DM003 size: 1000.2GB Optical: /dev/sr0 model: N/A dev-links: cdrom Features: speed: 48x multisession: yes audio: yes dvd: yes rw: cd-r,c
Eso es porque inxi -d
también incluye inxi -D
, que informa sobre los discos duros. De cualquier manera, el parámetrowodim
dev
correcto es /dev/sr0
y el comando wodim debería ser
wodim dev=/dev/sr0 <other options> path/to/your.iso
Просто присвойте его переменной вот так:
MSG2=$(echo $MSG | sed -e $'s/;/\\n/g')
Для вашей задачи вам не нужны конвейеры или sed. Все это можно сделать намного эффективнее, используя встроенные bash
команды, подобные этой:
NewMsg=${MSG//;/$'\n'}
${MSG//;/$'\n'}
является примером замены шаблона . Он заменяет каждое вхождение ;
символом новой строки. Результат сохраняется в переменной оболочки NewMsg
.
В качестве примера:
$ Msg='1;2;3'
$ NewMsg=${Msg//;/$'\n'}
$ echo "$NewMsg"
1
2
3
Примечания:
Лучше всего использовать переменные оболочки в нижнем -или смешанном -регистре. Система использует все заглавные буквы для своих переменных, и вы не хотите случайно перезаписать одну из них.
Если вы явно не хотите разбиение слов и расширение имени пути , всегда заключайте переменные оболочки в двойные -кавычки. Таким образом, когда вы хотите использовать echo $MSG
, используйте вместо этого echo "$MSG"
.
Кроме того, если вы не знаете, какие символы будут в строке, которую вы выводите, echo
имеет проблемы, и использовать printf '%s\n' "$MSG"
безопаснее и удобнее. Для получения дополнительной информации см. очень информативное обсуждение echo
иprintf
Stéphane Chazelas .
Имейте в виду, что если вы используете подстановку команд, $(...)
, оболочка удалит все завершающие символы новой строки. Хотя обычно это полезно, бывают случаи, когда изменение нежелательно.