Вышеупомянутый
printf '%s\n' "$LS"
- единственно верное решение.
Позвольте мне продемонстрировать, что другие предложенные решения, как с echo
так и с printf
, просто не работают должным образом:
$ mkdir t
$ cd t
$ touch \\n
$ LS=$(ls -l)
$ echo "$LS"
total 0
-rw-r--r-- 1 domain domain 0 Nov 5 06:12
$ printf "$LS\n"
total 0
-rw-r--r-- 1 domain domain 0 Nov 5 06:12
$ printf '%s\n' "$LS"
total 0
-rw-r--r-- 1 domain domain 0 Nov 5 06:12 \n
$ ls -l
total 0
-rw-r--r-- 1 domain domain 0 Nov 5 06:12 \n
$ rm \\n
$ cd ..
$ rmdir t
$
(Можно также проверить с V=$(printf 'line0:\\\n\n\n\nline1. \n') printf '%s\n' "$V"
и вариации.)
В то время как \n
в именах файлов может встречаться не так часто, храните git diff
в переменной, и ваши шансы встретить литерал \n
резко возрастают.
Необходимо включить replica $COUNT
. Это известная проблема, когда у вас включены реплики :
Current design constraints in replicate module doesn't allow for us to add individual bricks into an existing topology.
Вы пробовали что-то подобное:
$ gluster vol add-brick test-volume-replicated3 \
host:/rhss/bricks/brick1/test-volume-replicated3
volume add-brick: failed: Incorrect number of bricks supplied 1 with count 2
В вашем сценарии, скорее всего, настроено несколько реплик для вашего тома gluster, потому что он изначально был построен таким образом:
$ gluster vol create test-volume-replicated3 replica 3 \
host1:/rhss/bricks/brick1/test-volume-replicated3 \
host2:/rhss/bricks/brick1/test-volume-replicated3 \
host3:/rhss/bricks/brick1/test-volume-replicated3
volume create: test-volume-replicated3: success: please start the volume to access data
И в настоящее время его топология выглядит так:
$ gluster vol info test-volume-replicated3
Volume Name: test-volume-replicated3
Type: Replicate
Volume ID: 10b3d0e2-14a2-4ec3-a98c-9a3307f3fd8f
Status: Created
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: host1:/rhss/bricks/brick1/test-volume-replicated3
Brick2: host2:/rhss/bricks/brick1/test-volume-replicated3
Brick3: host3:/rhss/bricks/brick1/test-volume-replicated3
Таким образом, чтобы ваша команда запустилась, вы должны сообщить gluster количество реплик при добавлении другого кирпича:
$ gluster vol add-brick test-volume-replicated3 replica 3 \
host:/rhss/bricks/brick1/test-volume-replicated3 \
host:/rhss/bricks/brick2/test-volume-replicated3 \
host:/rhss/bricks/brick3/test-volume-replicated3