【问题标题】:Bash scripting checking content of a variable containing a directory pathBash 脚本检查包含目录路径的变量的内容
【发布时间】:2013-09-18 06:44:45
【问题描述】:

我正在尝试在 Ubuntu 12.10 上编写一个简单的 bash 脚本,它将 pwd 命令的结果存储在一个变量中,然后在 if 命令中检查该变量的值以查看它是否与特定字符串匹配。但是我不断收到错误,因为它将该变量的内容视为目录本身并不断给出错误“没有这样的文件或目录”

程序如下:

myvar=$(pwd)
if [$myvar -eq /home/vicky] #fails this check as variable myvar contains /home/vicky
then
    echo correct
else
    echo incorrect
fi

任何帮助将不胜感激

【问题讨论】:

  • 您知道说$(pwd)$PWD 会返回您执行脚本的目录,而而不是 脚本所在的目录?
  • 是的。这个例子只是为了练习。看看我如何在变量中返回命令的输出,然后进行一些条件编程。

标签: bash


【解决方案1】:

正确的形式是

myvar=$(pwd)
if [ "$myvar" = /home/vicky ]  ## Need spaces and use `=`.

而且由于您使用的是 bash,因此您不需要使用 pwd。只需使用$PWD。此外,最好使用[[ ]],因为变量在其中时不仅仅用于分词和路径名扩展。

myvar=$PWD
if [[ $myvar == /home/vicky ]]

或者干脆

if [[ $PWD == /home/vicky ]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 2013-04-18
    • 2019-09-30
    • 2019-07-14
    • 2013-11-15
    相关资源
    最近更新 更多