Bash: для одной строки цикла

Это будет работать для любого количества столбцов:

sed 's/_[0-9.]\+//g'
0
08.06.2017, 07:40
4 ответа

Вы не используете bash, или вы используете более старую версию bash, или оболочку, которая не понимает расширения фигурных скобок.

Наиболее вероятное объяснение состоит в том, что ваш эмулятор терминала работает /bin/shили какая-то оболочка меньшего размера (, которая, как мы надеемся, по-прежнему в основном совместима с POSIX ).

Вbash(и любой другой оболочке, которая поддерживает раскрытие фигурных скобок ), ваш явный цикл for -может быть заменен неявным циклом:

printf 'Welcome %d\n' {1..4}

или

printf 'Welcome %d\n' $(seq 4)

если у вас нет раскрытия скобок, но есть seq.

3
28.01.2020, 02:13

Вы используете /bin/sh (оболочку), а не /bin/bash.

$ /bin/sh -c 'for i in {1..4}; do echo "Welcome $i";done'
Welcome {1..4}

Теперь попробуйте с bash:

$ /bin/bash -c 'for i in {1..4}; do echo "Welcome $i";done'
Welcome 1
Welcome 2
Welcome 3
Welcome 4

Если вы предпочитаете оболочку, то сделайте так, как Nikolas пишет:

for i in $(seq 4); do echo "Welcome $i" ; done

но я бы посоветовал использовать Bash.

3
28.01.2020, 02:13

Как сказал Кусалананда , либо вы не используете bash, либо версия не очень свежая . Я тестировал следующее в более старых версиях bash (, может быть, до того, как он сформировал свою идиому? )и работает с shтоже:

for i in `seq 1 4`;do echo "Welcome $i";done

Это должно сработать.

1
28.01.2020, 02:13

Если вы используете это приложение:Эмулятор терминала Android , «тогда это эмулятор терминала для связи со встроенной -оболочкой Android». То есть, если вы не устанавливали свою собственную версию bash вручную (, ваше устройство должно быть рутировано для этого. Вы рутировали свое устройство? ), значит у вас оболочка Android по умолчанию, а не bash. Поэтому вы можете использовать только набор функций оболочки Android и не можете использовать расширенный синтаксис и функции bash, например:{1..4}.

Немного информации, которую я нашел.

1
28.01.2020, 02:13

Теги

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