我一直在努力解决这个问题几个小时,并尝试了所有我可以在讨论板上找到的东西。我无法切换到bash
,这是打算在bin/sh
。Shell脚本意外操作员
问题出在while循环,while [ $currentID -gt 0 ]
。该错误是" 21: [: 2893: unexpected operator
#!/bin/sh
Menu_Option=0
echo "WELCOME"
echo "--------------------------------------------------------------"
while [ $Menu_Option -ne 4 ]
do
echo "select a menu option"
echo "1- ancestry history"
echo "2- who is online"
echo "3- what process any user is running"
echo "4- exit"
read Menu_Option
case $Menu_Option in
1)
echo "THE ANCESTRY TREE FOR CURRENT PROCESS IS...."
echo " "
ps -ef > file1
currentID=$(awk '{if ($3 == '$PPID') print $2}' file1)
while [ $currentID -gt 0 ]
do
Process_Name=$(awk '{if ($2 == $currentID) print $8 " " $9}' file1)
你检查什么'currentID'设置为?在设置它之后添加诸如'echo $ currentID'之类的东西,看看你从awk中找回了什么。 –
它返回多个值。我怎样才能解决这个问题? –
如果不知道自己的意图和返回什么价值,很难说出来? –