GVKun编程网logo

Bash if语句中带有变量的空格(bash编程if语句)

11

以上就是给各位分享Bashif语句中带有变量的空格,其中也会对bash编程if语句进行解释,同时本文还将给你拓展actionscript-3–在变量的if语句中传递为true(或false)的内容、b

以上就是给各位分享Bash if语句中带有变量的空格,其中也会对bash编程if语句进行解释,同时本文还将给你拓展actionscript-3 – 在变量的if语句中传递为true(或false)的内容、bash / sh if语句的语法、Bash if语句行为、bash – 为什么带有反引号的if语句不能正常工作?等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Bash if语句中带有变量的空格(bash编程if语句)

Bash if语句中带有变量的空格(bash编程if语句)

有一天,我正在努力进行if声明.转动我们的变量在开头有一个空格.所以我试着用下面的代码来征服它,但我没有运气.

if [ "$COMMAND_WAIT" == "*REBOOT" ]; then
sudo /etc/kca/scripts/reboot.sh
echo "REBOOTING"
fi

我是否应该能够对此声明进行通配符,还是有另外一种解决方法?

解决方法

以下应该有效.它使用[[而不是[,而不是模式周围的引号.

if [[ "$COMMAND_WAIT" == *REBOOT ]]; then
    sudo /etc/kca/scripts/reboot.sh
    echo "REBOOTING"
fi

[[expression]]是一个复合表达式,有关扩展和引用的特殊规则.相反,[是一个内置命令,即* REBOOT将扩展为路径名.在大多数情况下,它更容易使用[[而不是[.

actionscript-3 – 在变量的if语句中传递为true(或false)的内容

actionscript-3 – 在变量的if语句中传递为true(或false)的内容

在此代码中,myVar的哪些值将表现为true和false?

if(myVar){}

例如,在JavaScript中,以下值是假的

null
undefined
0
''
false

解决方法

宾语

false if the instance is null; true otherwise

false if the value is null or the empty string ""; true otherwise

Number,int或uint

false if the value is NaN or 0; true otherwise

空值

false

从here起.

bash / sh if语句的语法

bash / sh if语句的语法

在各种指南和脚本中,我碰到人们倾向于使用if语句的不同语法。 有什么不同,什么是最佳实践? 我相信所有以下的陈述,以及更多的变种,都会返回true:

bar="foo" if [ "foo" = "foo" ] if [[ "foo" == $bar ]] if [ "foo" = "$bar" ] if [[ "foo" = "$bar" ]] if [[ "foo" -eq $bar ]]

Bash脚本根据数量归档文件

检查进程是否正在运行

dirpath难题在bash中?

为什么env不打印PS1variables?

无法链接多个sed命令

据我所知

=期望字符串

-eq期望整数

“$ bar”用于文字匹配,即z *可以扩展,但“z *”将与通配符字符相符。

[]和[[]]之间的区别在于后面的单词分割和路径名称扩展没有完成,但在前者中。

Plus [[]]允许额外的操作符:

&&(AND),|| (OR),>(String1词性大于String2),<(String1词性小于String2)

==比较运算符在双括号测试中的行为与单个括号内的不同。

[[$ a == z *]]#如果$ a以“z”(模式匹配)开始,则为真。

[[$ a ==“z *”]]#如果$ a等于z *(文字匹配),则为真。

[$ a == z *]#发生文件通配和分词。

[“$ a”==“z *”]#如果$ a等于z *(文字匹配),则为真。

查看http://tldp.org/LDP/abs/html/comparison-ops.html了解更多信&#x606F;

[是一个bash内建的, [[是一个bash关键字。 最佳做法是始终使用[[如果脚本不必与其他shell兼容(例如,如果它以#!/bin/bash开头),并且[仅用于与Bourne shell兼容。 见http://mywiki.wooledge.org/BashFAQ/031 。

我推荐case / esac。

case "$foo" in "bar" ) echo "bar";; *) echo "not equal";; esac

不要担心不同的语法。

Bash if语句行为

Bash if语句行为

我遗漏了关于bash的if构造/运算符或字符串比较的基本内容.
请考虑以下脚本:
#!/bin/bash
baseSystem="testdir1"
testme="NA"
if [ "$baseSystem"=="$testme" ]; then
    echo "In error case"
fi
if [ "$baseSystem"!="$testme" ]; then
    echo "In error case"
fi

我明白了:

In error case
In error case

因此它进入每个案例,即使它们应该是互相排斥的.
任何帮助表示赞赏.

bash碰巧对空间有点特别.

在运算符周围添加空格:

if [ "$baseSystem" == "$testme" ]; then

...

if [ "$baseSystem" != "$testme" ]; then

以下不相同:

[ "$a"="$b" ]
[ "$a" = "$b" ]

你的第一次测试基本上与说“[testdir1 == NA”]相同;那将永远是真的.

bash – 为什么带有反引号的if语句不能正常工作?

bash – 为什么带有反引号的if语句不能正常工作?

我正在尝试制作一个Bash脚本,用户可以在其中复制文件,看看是否成功完成.但每次复制完成,无论是否正确,都会显示第二个输出“未完成复制”.知道怎么解决这个问题吗?
if [ `cp -i $files $destination` ];then
        echo "copy successful."
else
        echo "copy was not done"
fi
你想要的是什么
if cp -i "$file" "$destination"; then #...

Don’t forget the quotes.

你的版本:

if [ `cp -i $files $destination` ];then #..

将始终执行else分支.

shell中的if语句接受命令.
如果该命令成功(返回0,它被分配到$?),则条件成功.

如果你这样做[…];然后,它就像是一样
如果测试…;那么因为[]是test命令/ builtin的语法糖.

在您的情况下,您将cp操作的stdout *的结果作为参数传递给test

cp操作的标准输出将为空(cp通常只输出错误,然后输出到stderr).具有空参数列表的测试调用是错误的.该错误导致非零退出状态,因此您始终获得else分支.

* $()进程替换或反引号进程替换会破坏它们运行的​​命令的标准输出

关于Bash if语句中带有变量的空格bash编程if语句的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于actionscript-3 – 在变量的if语句中传递为true(或false)的内容、bash / sh if语句的语法、Bash if语句行为、bash – 为什么带有反引号的if语句不能正常工作?等相关知识的信息别忘了在本站进行查找喔。

本文标签: