我想从 $TEXT 打印出前两个字符

The*_*ett 3 bash shell-script variable

我希望我的程序打印出我输入的文本,然后是该文本的前两个字符。有没有办法做到这一点?

#!/bin/bash
#
# Get text from user repeatedly
#
echo "Type away..."
while read TEXT
do
    echo You typed $TEXT
    if [ "$TEXT" = "quit" ] || [ "$TEXT" = "q" ] || [ "$TEXT" = "Q" ] || [ "$TEXT" = "QUIT" ]; then
        echo So I quit!
        exit 0
    fi
done

echo "HELP!"
Run Code Online (Sandbox Code Playgroud)

Gre*_*att 9

您可以使用符号获取第一个字符,其中var是变量名称,N是您想要的字符数。所以,对于你的问题,应该给你. 例子:${var:0:N}${TEXT:0:2}TEXT

TEXT="Some text"
echo "\$TEXT: '$TEXT', first 2 chars: '${TEXT:0:2}'"
Run Code Online (Sandbox Code Playgroud)

输出:

$TEXT: 'Some text', first 2 chars: 'So'  
Run Code Online (Sandbox Code Playgroud)

Linux 文档项目有一章叫做“操作字符串”。“子串提取”部分有关于这个符号的更多细节。