Dem*_*eep 22 bash shell-script test
我的ifbash 脚本中有以下块:
if [ ${PACKAGENAME} -eq kakadu-v6_4-00902C ]; then
echo "successfully entered if block!!"
fi
Run Code Online (Sandbox Code Playgroud)
该脚本执行不进入我的if块,即使$PACKAGENAME是相同kakadu-v6_4-00902C。我究竟做错了什么?
pol*_*lym 32
-eq 是一个算术运算符,它比较两个数字。
使用=(portable/standard sh),=~或者==代替。
也使用引号,因为如果${PACKAGENAME}包含空格或通配符,那么它将被拆分为多个参数,这会导致[看到比所需更多的参数。请参阅此处的常见 bash 陷阱列表。
if [ "${PACKAGENAME}" = 'kakadu-v6_4-00902C' ]; then
echo "successfully entered if block!!"
fi
Run Code Online (Sandbox Code Playgroud)
见man bash,搜索(/)CONDITIONAL EXPRESSIONS。
替换-eq为== 这样您的 if 块将是这样的:-
if [ ${PACKAGENAME} == kakadu-v6_4-00902C ]; then
echo "successfully entered if block!!"
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
135845 次 |
| 最近记录: |