string - 如何在 bash 中的两个函数之间传递包含空格的字母数字变量?

标签 string bash variables space

脚本:

function insertMessage {
   $1 > log.txt
}

function checkResult {
  if [ $1 -eq 0 ]; then
    insertMessage "$2"
  else
    insertMessage "$3"
  fi
}

但是当我尝试时:

 rm $DIR
 checkResult $? 'Directory deleted ok' 'Cannot delete directory'

我仅收到 log.txt 中的 Directory。似乎 bash 也考虑字符串中的空格 - 因此仅将单词 Directory 视为 $2

如何解决?谢谢。

最佳答案

使用引号:

function checkResult {
   if [ "$1" -eq 0 ]; then
     insertMessage "$2"
    else
     insertMessage "$3"
    fi
}

你的 insertMessage 函数看起来很奇怪:

function insertMessage {
    echo "$1" >> log.txt
}

会更有意义。

关于string - 如何在 bash 中的两个函数之间传递包含空格的字母数字变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12425018/

相关文章:

ruby-on-rails - ruby rails : Interpreting a form input as an integer

python - 仅将一列从字符串转换为 int

bash - 按镜像名称停止 docker 容器,如果没有容器正在运行,则不会出错

c - fscanf 更改字符串变量?

variables - 如何在检查点中列出某些变量?

javascript - 想要在 javascript 中编写正则表达式,它将检查所有提到的字符是否至少存在

javascript - 如何在JS上将带引号的字符串连接到另一个带多个引号的字符串

bash - ( ) & 和 ( &) 的区别?

linux - bash 语法错误 : Unaccepted Token Elif

java - 关闭我的程序后如何保存对象变量?