Некоторые люди имеют в виду «ввод из командной строки» аргумент, переданный команде вместо чтения из STDIN ... поэтому, пожалуйста, не стреляйте в меня. Но у меня есть (возможно, не самое сложное) решение для STDIN!
При использовании bash и наличии данных в переменной вы можете использовать расширение параметра
${parameter:offset:length}
и, конечно, вы можете выполнить это для заданных аргументов ($1
, $2
, $3
и т. Д.)
Сценарий
#!/usr/bin/env bash
testdata1="1234"
testdata2="abcd"
echo ${testdata1:0:1}
echo ${testdata2:0:1}
echo ${1:0:1} # argument #1 from command line
Исполнение
$ ./test.sh foo
1
a
f
чтение из STDIN
Сценарий
#!/usr/bin/env bash
echo please type in your message:
read message
echo 1st char: ${message:0:1}
Исполнение
$ ./test.sh
please type in your message:
Foo
1st char: F