Как правильно использовать символы 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.

Другие вопросы по тегам