[英]Running a C Program in Bash Script
當我在此bash腳本中運行C程序時,它將返回錯誤。
ssh -n -f *.*.*.* "cd /home/sth/remote && echo "$1" && det=$(./ossec-rootcheck)">/home/sthh/res
錯誤:
./ossec-rootcheck: No such file or directory
我想ssh到遠程計算機,然后在其上運行程序。 我知道此文件位於該路徑中,因為當您編輯它時,它就可以工作了。
ssh -n -f *.*.*.* "cd /home/sth/remote && echo "$1" && ./ossec-rootcheck">/home/sthh/res
當它echo $1
我可以看到它確實是cd /home/sth/remote
right。 但是我希望該程序的返回值存儲在變量中,例如det
。
ssh -n -f *.*.*.* "cd /home/sth/remote; echo "$1"; ./ossec-rootcheck || do_your_work">/home/sthh/res
您不必將其存儲在變量中。
|| 如果ossec-rootcheck!= 0的退出狀態執行do_your_work
如果要將數字退出狀態存儲在變量中或回顯它,則可以執行此操作(使用適當的轉義符):
./ossec-rootcheck; ecode=$?; echo $ecode
要獲取遠程代碼的返回碼或退出碼:
ssh -n -f *.*.*.* "cd /***/***/remote && echo \"$1\"; ./ossec-rootcheck; echo \$?">/home/ossl7/res
還要捕獲錯誤:
ssh -n -f *.*.*.* "exec 2>&1; cd /***/***/remote && echo \"$1\"; ./ossec-rootcheck; echo \$?">/home/ossl7/res
另外,當發現它已經可以正常工作時,可能需要省略&& echo \\"$1\\"
。 您可以使用單引號:
ssh -n -f *.*.*.* 'cd /***/***/remote; ./ossec-rootcheck; echo $?' >/home/ossl7/res
要么
ssh -n -f *.*.*.* 'exec 2>&1; cd /***/***/remote; ./ossec-rootcheck; echo $?' >/home/ossl7/res
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.