Как правильно использовать символы excape в встроенной команде csh echo?
Я пытаюсь собрать свой fstab во время установки с помощью скрипта, поэтому я хочу получить что-то вроде этого:
printf '# Device\t\tMountpoint\tFSType\tOptions\t\tDump\tPass#' >> /mnt/etc/fstab
printf '\n/dev/ada0p4.elia\t/\t\tufs\trw\t\t1\t2' >> /mnt/etc/fstab
printf '\n/dev/ada0p3.eli\t\tnone\t\tswap\tsw\t\t0\t0' >> /mnt/etc/fstab
printf '\n/dev/ada0p2\t\t/unencrypted\tufs\tro\t\t1\t1' >> /mnt/etc/fstab
Есть ли способ сделать это в csh с помощью echo?
Я пытался, и это не работает должным образом. Например, вот тест и вывод на мою коробку FreeBSD 9.0-RELEASE-p1:
# echo test\ttest > test
# cat test
testttest
Что здесь не так?
1 ответ
Решение
Встроенный echo в Csh не поддерживает эту функцию, поэтому вам нужно будет ввести путь к команде echo системы. Кроме того, вам нужно либо добавить дополнительный обратный слеш, либо поставить его в кавычки.
Любой из них должен работать.
/usr/bin/echo test\\ttest > test
или же
/usr/bin/echo 'test\ttest' > test
Вопреки тому, что я писал ранее, вам не нужно использовать флаг -e. Это нужно только для команды echo GNU.