shell程序不显示输入字符的值?
我正在从用户输入一个字符,并尝试打印字符的ascii值,如果它的值大于等于97,并且shell程序不显示输入字符的值?,shell,unix,ascii,Shell,Unix,Ascii,我正在从用户输入一个字符,并尝试打印字符的ascii值,如果它的值大于等于97,并且[是shell中的一个命令,也称为test命令 在[和]周围需要空格 此外,为了比较整数,您需要使用 编辑:为了修复,您可以说: read n asc=$(printf "%d" "'$n") [[ "$asc" > 97 ]] && [[ "$asc" < 122 ]] && echo $asc [是shell中的一个命令,也称为test命令 在[和]周围需要空格
[
是shell中的一个命令,也称为test
命令
在[
和]
周围需要空格
此外,为了比较整数,您需要使用
编辑:为了修复,您可以说:
read n
asc=$(printf "%d" "'$n")
[[ "$asc" > 97 ]] && [[ "$asc" < 122 ]] && echo $asc
[
是shell中的一个命令,也称为test
命令
在[
和]
周围需要空格
此外,为了比较整数,您需要使用
编辑:为了修复,您可以说:
read n
asc=$(printf "%d" "'$n")
[[ "$asc" > 97 ]] && [[ "$asc" < 122 ]] && echo $asc
[
是shell中的一个命令,也称为test
命令
在[
和]
周围需要空格
此外,为了比较整数,您需要使用
编辑:为了修复,您可以说:
read n
asc=$(printf "%d" "'$n")
[[ "$asc" > 97 ]] && [[ "$asc" < 122 ]] && echo $asc
[
是shell中的一个命令,也称为test
命令
在[
和]
周围需要空格
此外,为了比较整数,您需要使用
编辑:为了修复,您可以说:
read n
asc=$(printf "%d" "'$n")
[[ "$asc" > 97 ]] && [[ "$asc" < 122 ]] && echo $asc
像这样的东西会使它:
#!/bin/sh
min=97
max=121
echo "Enter a character"
read n
value=$(printf "%d" "'$n")
printf "The ASCII character of %s is %d.\n" "$n" "$value"
if [ "${value}" -le $min ] && [ "${value}" -le $max ]
then
printf "%d not in the range.\n" "$value"
else
printf "%d in the range.\n" "$value"
fi
我改变的事情:-
printf
而不是print
-
[“${n}”-ge 97和“${n}”-le 121]
需要将条件拆分为两个块:
if [ "${n}" -le 97 ] && [ "${n}" -le 121 ]
像这样的东西会使它:
#!/bin/sh
min=97
max=121
echo "Enter a character"
read n
value=$(printf "%d" "'$n")
printf "The ASCII character of %s is %d.\n" "$n" "$value"
if [ "${value}" -le $min ] && [ "${value}" -le $max ]
then
printf "%d not in the range.\n" "$value"
else
printf "%d in the range.\n" "$value"
fi
我改变的事情:-
printf
而不是print
-
[“${n}”-ge 97和“${n}”-le 121]
需要将条件拆分为两个块:
if [ "${n}" -le 97 ] && [ "${n}" -le 121 ]
像这样的东西会使它:
#!/bin/sh
min=97
max=121
echo "Enter a character"
read n
value=$(printf "%d" "'$n")
printf "The ASCII character of %s is %d.\n" "$n" "$value"
if [ "${value}" -le $min ] && [ "${value}" -le $max ]
then
printf "%d not in the range.\n" "$value"
else
printf "%d in the range.\n" "$value"
fi
我改变的事情:-
printf
而不是print
-
[“${n}”-ge 97和“${n}”-le 121]
需要将条件拆分为两个块:
if [ "${n}" -le 97 ] && [ "${n}" -le 121 ]
像这样的东西会使它:
#!/bin/sh
min=97
max=121
echo "Enter a character"
read n
value=$(printf "%d" "'$n")
printf "The ASCII character of %s is %d.\n" "$n" "$value"
if [ "${value}" -le $min ] && [ "${value}" -le $max ]
then
printf "%d not in the range.\n" "$value"
else
printf "%d in the range.\n" "$value"
fi
我改变的事情:-
printf
而不是print
-
[“${n}”-ge 97和“${n}”-le 121]
需要将条件拆分为两个块:
if [ "${n}" -le 97 ] && [ "${n}" -le 121 ]
这是我得到的错误ascii2.sh:3:[:非法数字:a警告:范围内“%d”的mime类型未知--使用“应用程序/八位字节流”警告:a的mime类型未知--使用“应用程序/八位字节流”错误:范围内没有这样的文件“%d”错误:没有这样的文件“a”你想说什么?好吧,这是可以做到的,但是对于这一点,
bash/shell
更好。我认为这种方式很清楚,请随意询问是否有问题。注意,我对代码进行了一点更新,使其更具一般性。这是我收到的错误asci2.sh:3:[:非法数字:警告:范围内“%d”的未知mime类型--使用“应用程序/八位字节流”警告:“a”的mime类型未知--使用“应用程序/八位字节流”错误:范围内没有此类文件“%d”错误:没有此类文件“a”“你想说什么?好吧,这是可以做到的,但是,bash/shell
更适合这样做。我认为这种方式很清楚,请随意询问是否有问题。注意,我对代码进行了一点更新,使其更具一般性。这是我收到的错误asci2.sh:3:[:非法数字:警告:范围内“%d”的未知mime类型”-使用”“应用程序/八位字节流”警告:“a”的mime类型未知--使用“应用程序/八位字节流”错误:范围内没有此类文件“%d”错误:没有此类文件“a”“你想说什么?好吧,这是可以做到的,但是,bash/shell
更适合这样做。我认为这种方式很清楚,请随意询问是否有问题。注意,我对代码进行了一点更新,使其更具一般性。这是我收到的错误asci2.sh:3:[:非法数字:警告:范围内“%d”的未知mime类型”-使用”“应用程序/八位字节流”警告:“a”的mime类型未知--使用“应用程序/八位字节流”错误:范围内没有此类文件“%d”错误:没有此类文件“a”“你想说什么?好吧,这是可以做到的,但是bash/shell
更适合这样做。我认为这种方式非常清楚,请随意询问是否有问题。注意,我对代码进行了一些更新,使其更具一般性。