2010-08-23 5 views
1

Je crée un script shell et je veux savoir s'il est possible d'écrire directement sur la ligne de commande quand le script est exécuté?Script shell: comment afficher en ligne de commande?

Exemple:

[email protected]:/home/user$./script.sh 
... output 
... another output 
... another output 
... last output 
[email protected]:/home/user$I want to write here on the command line 

Je ne veux pas « echo » du texte, je veux écrire directement à l'invite.

Merci!

+0

En tant que tel, non, pas autant que je sache. – mctylr

+0

Pour quoi avez-vous besoin de cela? Je connais un moyen de l'obtenir pour imprimer le texte, mais vous ne pouvez pas vous débarrasser du texte par retour arrière, et le texte n'aura aucun effet sur votre prochaine commande. Mais je doute que ce soit ce que tu cherches. – Serplat

+0

@Serplat: Le texte est une commande que l'utilisateur va exécuter quand il sera prêt. – codea

Répondre

4

Non, vous ne pouvez pas faire cela. Si vous voulez que l'utilisateur appelle votre commande fournie après la fin de votre script, pourquoi ne pas demander confirmation à l'utilisateur?

+0

Excellente idée ... Je vais procéder de cette façon que je ne peux pas écrire à l'invite. Merci – codea

0

Si vous voulez juste que le texte apparaisse, mais que vous ne puissiez rien faire, vous pouvez le faire.

test.sh du fichier:

echo "Output" 
./test2.sh & 

test2.sh du fichier:

echo "Output2" 

Remarquez comment le premier script appelle le second script avec le & à la fin.

Dans ce cas, "Output2" sera écrit à l'invite, mais il ne peut pas être supprimé et n'aura aucun effet sur la commande suivante. Mais si c'est quelque chose que vous faites pour attirer l'attention de l'utilisateur, cela fonctionnera.

+0

Merci ... mais je veux que l'utilisateur appuie simplement sur Entrée pour exécuter la commande quand il sera prêt – codea

0

En ksh:

print -s $(script) 

imprimera à l'historique des commandes. Envelopper dans une fonction et vous aurez quelque chose de proche de ce que vous demandez.

+0

Merci mais je ne peux pas utiliser ksh. – codea

+0

@codea Je comprends, bien sûr, que vous ne pouvez pas utiliser 'ksh', mais ne pouvez-vous certainement pas l'utiliser? S'il y a une limite particulière, nous pourrions peut-être contourner cela. –

0

Si vous utilisez l'environnement X et installer xclipxdotool, puis:

#!/bin/bash 
your scripts.... 
echo -n your command to write 2>&1|xclip 
xdotool click 2 
Questions connexes