脚本:
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/