انجمنهای فارسی اوبونتو
تازه کار => انجمن تازهکاران => نویسنده: linux kar در 14 تیر 1400، 10:58 قظ
-
سلام دوستان می خواستم بدونم آیا دستوری در ترمینال هست که مثلا بگه بعد از ۳۰ ثانیه از ترمینال بیرون برو.
این دستور رو برای شل اسکریپت می خوام. ممنون میشم اگه بگید.
-
سلام. با دستور sleep میشه این کار رو انجام داد مثلا برای موردی که گفتین میشه کد رو به این صورت نوشت:
sleep 30s && exit
توضیحات بیشتر:
https://www.man7.org/linux/man-pages/man1/sleep.1.html (https://www.man7.org/linux/man-pages/man1/sleep.1.html)
-
سلام. با دستور sleep میشه این کار رو انجام داد مثلا برای موردی که گفتین میشه کد رو به این صورت نوشت:
sleep 30s && exit
توضیحات بیشتر:
https://www.man7.org/linux/man-pages/man1/sleep.1.html (https://www.man7.org/linux/man-pages/man1/sleep.1.html)
از کمکتون ممنونم ولی از ترمینال خارج نشد فقط ۳۰ ثانیه داشت چشمک میزد و بعد برام bash رو باز کرد.
-
خواهش میکنم. بله درسته این دستور در صورتی کار میکنه که مستقیما در خود ترمینال اونو وارد کنید. چنان چه توی یک اسکریپت این کار انجام میشه میتونید با استفاده از متغیر $PPID، آیدی ترمینالی که این اسکریپت در اون اجرا شده رو پیدا کنید و بعد اونو kill کنید. با استفاده از $$ هم process id خود shell رو میتونید پیدا کنید.
-
خواهش میکنم. بله درسته این دستور در صورتی کار میکنه که مستقیما در خود ترمینال اونو وارد کنید. چنان چه توی یک اسکریپت این کار انجام میشه میتونید با استفاده از متغیر $PPID، آیدی ترمینالی که این اسکریپت در اون اجرا شده رو پیدا کنید و بعد اونو kill کنید. با استفاده از $$ هم process id خود shell رو میتونید پیدا کنید.
میشه دقیقتر توضیح بدین
-
در مثال زیر، اجرای اسکریپت به مدت 5 ثانیه متوقف میشه و بعد از اون در هنگام خروج، parent خودش (یعنی هموت ترمینال) رو هم می بنده
#! /bin/bash
echo terminal will be closed after 5 secods
sleep 5s
kill -s 9 $PPID
-
در مثال زیر، اجرای اسکریپت به مدت 5 ثانیه متوقف میشه و بعد از اون در هنگام خروج، parent خودش (یعنی هموت ترمینال) رو هم می بنده
#! /bin/bash
echo terminal will be closed after 5 secods
sleep 5s
kill -s 9 $PPID
از کمکتون ممنونم
-
میتونی از دستور timeout استفاده کنی.
timeout 30