Вы используете /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.
Когда вы запускаете ls -al
или ls -F
, файлы, перечисленные с красным фоном и белым текстом, указывают на то, что бит setuid
был перевернут. Это означает, что файл/скрипт/программа будет работать от имени пользователя, которому они принадлежат, а не пользователя, запустившего их. Как видно из рисунка, у ping
и ping6
4-й бит установлен как s
, тогда как у других, где бит setuid
не перевернут, отображается x
.
Дополнительную информацию можно найти по адресу:
В реализации GNU ls
значение цветов зависит от значения переменной окружения LS_COLORS
, обычно задаваемой с помощью команды dircolors
.
Комбинация (числового кода )(и )определяет, какие цвета используются для обозначения конкретного типа файла:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
Белый текст на красном фоне определяется комбинацией37;41
Используйте echo "$LS_COLORS"
, чтобы выяснить, что:su=37;41
таким образом, файлы SETUID представляют собой белый текст на красном фоне (, который используется по умолчанию )
dircolors --print-database
дает более подробный и читаемый вывод для настроек по умолчанию при отсутствии каких-либо настроек:
SETUID 37;41 # file that is setuid (u+s)
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
Единственным другим вариантом использования по умолчанию для красного выделения является синий текст на красном фоне для каталогов с установленным липким битом.