【问题标题】:Assigning variable in shell script在 shell 脚本中分配变量
【发布时间】:2011-11-29 00:05:23
【问题描述】:
#!/bin/sh
SUCCESS=0 
java -jar sbc.jar &
while [ true ];
do
echo "sleeping"
sleep 5
echo "again"
tail -1 ~/NetBeansProjects/xyz/dist/newlog.log | grep -q "[INFO ] - Stream closed"
if  [ $? = 1 ]
then
echo " entered if "
java -jar sbc.jar &
else 
echo " did not if "
fi
done

我想使用比 $ 更好的变量?存储上一行的结果,因为我可能不止一次需要它。该脚本旨在检查文件newlog.log 的最后一行以查找特定字符串,然后再次启动sbc.jar,因为该字符串确认程序已停止。

【问题讨论】:

    标签: shell unix


    【解决方案1】:

    将其存储在另一个变量中:

    ...
    tail -1 ~/NetBeansProjects/xyz/dist/newlog.log | grep -q "[INFO ] - Stream closed"
    RES=$?
    if  [ $RES = 1 ]
    ...
    

    【讨论】:

    • 谢谢。我之前在 RES 之后给出了一个空格,这使它成为一个未知变量。空格是 shell 脚本的一个问题 :P 。非常感谢:)
    • 不客气。我经常犯这个错误。对我来说,另一个最常见的方法是在 [ 和之前 ] 之后不留空格用于条件句。请接受此答案以节省其他人的时间。
    • 我昨天发现的:D
    • 我会接受的。它显示 5 分钟太少,无法接受。现在完成! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 2014-03-07
    • 2022-01-26
    • 1970-01-01
    • 2013-04-10
    • 2017-04-16
    相关资源
    最近更新 更多