Gönderen man bashaltında ŞARTLI ANLATIM :
-t fd
True if file descriptor fd is open and refers to a terminal.
Fd 1'in standart olarak kabul if [ -t 1 ]; thenedilmesi, sizin için çalışmalıdır. Gelişmiş Shell Scripting Guide iddiaları -tbu şekilde kullanılan başarısız olur sshve testin ki (Stdin kullanarak değil stdout'u) bu nedenle olmalıdır:
if [[ -t 0 || -p /dev/stdin ]]
-pbir dosyanın var olup olmadığını ve adlandırılmış bir kanal olup olmadığını test eder. Bununla birlikte , deneyimsel olarak bunun benim için doğru olmadığını not ederim: -p /dev/stdinhem normal terminaller hem de ssh oturumları için başarısız olurken if [ -t 0 ](veya -t 1) her iki durumda da çalışır ( Gelişmiş Kabuk Komut Dosyası Kılavuzu'nun bu bölümündeki sorunlar hakkında aşağıdaki Gilles yorumlarına bakın ).
Birincil sorun, bu bağlama uygun bir şekilde davranması için komut dosyasını çağırmak istediğiniz özel bir bağlamsa, bir sarmalayıcı ve özel bir değişken kullanarak tüm bu teknikleri kaldırıp kendinize biraz yaygara kaydedebilirsiniz:
!#/bin/bash
export SPECIAL_CONTEXT=1
/path/to/real/script.sh
Buna live_script.shya da her neyse çağırın ve bunun yerine çift tıklayın. Elbette aynı şeyi komut satırı argümanlarında da yapabilirsiniz, ancak bir GUI dosya tarayıcısının çalışmasını sağlamak ve tıklatmak için bir sarıcıya ihtiyaç duyulur.