Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Bash脚本比较if语句中的字符串和变量_String_Bash_Variables_Comparison - Fatal编程技术网

String Bash脚本比较if语句中的字符串和变量

String Bash脚本比较if语句中的字符串和变量,string,bash,variables,comparison,String,Bash,Variables,Comparison,我试图让一个变量与字符串进行比较,然后如果它与字符串进行比较,则执行一些操作,然后继续执行下一个操作,但是当我在调试模式下查看它时,该变量显示为',其中没有任何内容 #!/bin/bash echo -e "Enter the name of the document you wish to edit:\c" read dname CTYPE= file "$dname" | cut -d\ -f2 echo $CTYPE VAR="ASCII" VAR2="cannot" if [ "$CT

我试图让一个变量与字符串进行比较,然后如果它与字符串进行比较,则执行一些操作,然后继续执行下一个操作,但是当我在调试模式下查看它时,该变量显示为
'
,其中没有任何内容

#!/bin/bash
echo -e "Enter the name of the document you wish to edit:\c"
read dname
CTYPE= file "$dname" | cut -d\  -f2
echo $CTYPE
VAR="ASCII"
VAR2="cannot"
if [ "$CTYPE" == "$VAR" ]
then
    vi $dname                       
fi
我得到这个结果:

+ VAR=ASCII
+ VAR2=cannot
+ '[' '' == ASCII ']'
其中,
是空的,即使我对其进行了回音,并看到它不是空的

我也尝试过其他方法,得到了相同或类似的非工作结果:

CTYPE= file "$dname" | cut -d\  -f2
if [ "$CTYPE" == "$VAR" ]

ctype= file "$dname" | cut -d\  -f2
if [ $ctype = "ASCII" ]

ctype= file "$dname" | cut -d\  -f2
if [ "$ctype" = "ASCII" ]   

ctype= file "$dname" | cut -d\  -f2
if [ "$ctype" == "ASCII" ]

我不知道我错过了什么,我读了太多的帖子,我不知道从这里该去哪里。谢谢大家!

您的CTYPE有一个错误:

CTYPE=$(file "$dname" | cut -d\  -f2)

=
和作业之间不能有任何空格。此外,您需要从
文件“$dname”| cut-d \-f2
返回,因此必须将其包含在
$()
中或使用反勾号。

您的CTYPE有一个错误:

CTYPE=$(file "$dname" | cut -d\  -f2)

=
和作业之间不能有任何空格。此外,您需要从
文件“$dname”| cut-d \-f2
返回,因此必须将其包含在
$()
中或使用反勾号。

您的CTYPE有一个错误:

CTYPE=$(file "$dname" | cut -d\  -f2)

=
和作业之间不能有任何空格。此外,您需要从
文件“$dname”| cut-d \-f2
返回,因此必须将其包含在
$()
中或使用反勾号。

您的CTYPE有一个错误:

CTYPE=$(file "$dname" | cut -d\  -f2)

=
和作业之间不能有任何空格。此外,您需要从
文件“$dname”| cut-d \-f2
返回,因此必须将其包含在
$()
中或使用反勾号。

运行此命令时:

d= date
bash执行以下操作:在
date
命令期间,仅设置环境变量
d
(值为空字符串)。这是密密麻麻的记录

正如所告诉您的,要捕获命令的输出,您需要

d=$(date)

运行此命令时:

d= date
bash执行以下操作:在
date
命令期间,仅设置环境变量
d
(值为空字符串)。这是密密麻麻的记录

正如所告诉您的,要捕获命令的输出,您需要

d=$(date)

运行此命令时:

d= date
bash执行以下操作:在
date
命令期间,仅设置环境变量
d
(值为空字符串)。这是密密麻麻的记录

正如所告诉您的,要捕获命令的输出,您需要

d=$(date)

运行此命令时:

d= date
bash执行以下操作:在
date
命令期间,仅设置环境变量
d
(值为空字符串)。这是密密麻麻的记录

正如所告诉您的,要捕获命令的输出,您需要

d=$(date)