���� ���� ����

3. �ܺ� ���ɾ��

3.1 PROMPT_COMMAND

�转������ �� �ٸ� ȯ�� ���� PROMPT_COMMAND�� �����˴ϴ�. �转�� ������Ʈ�� ǥ���ϱ� �ٷ� ������, �������� �转 ���ɾ�μ�, �� ������ ������ ����˴ϴ�.

[21:55:01][giles@nikola:~] PS1="[\u@\h:\w]\$ "
[giles@nikola:~] PROMPT_COMMAND="date +%H%M"
2155
[giles@nikola:~] d
bin   mail
2156
[giles@nikola:~] 

������ �Ͼ ���� �����帮�ڸ�, �̽����� ���������� '\t'�� ���� ���Ѽ�, �� ����Ʈ�� �ð��� �� �̻� ���Ե��� �ʵ��� �Ͽ����ϴ�. �׸������� 'date +%H%M' �� ����Ͽ� ���� �� �����ϴ� �������� �ð��� ǥ���ϵ��� �Ͽ����ϴ�. �׷����� �̹����� ������Ʈ�ʹ� ���� �ٸ� �ٿ� ��Ÿ�����ϴ�. �转2.0+ ������ 'echo -n ...'�� ����Ͽ� �� ������ �� ������, �Ʒ������� ���� �ۿ�������, �转1.14.7������ �۵����� �ʰ� �˴ϴ�.: ������ ������Ʈ�� �ٸ� ������ �ۼ��� ��, �Ʒ��� ���� ����� �ߺ��� �������� ��Ÿ���ϴ�.

2156
[giles@nikola:~] PROMPT_COMMAND="echo -n [$(date +%H%M)]"
[2156][giles@nikola:~]$
[2156][giles@nikola:~]$ d
bin   mail
[2157][giles@nikola:~]$ unset PROMPT_COMMAND
[giles@nikola:~]

'echo -n ...'�� ���� ��¥ ������ ����� �����ǰ� �ڿ� ������ '����' ���ڰ� ��ȿ ȭ�Ǿ�, ������Ʈ�� �Բ� ��� �� �ٿ� ��Ÿ���� �˴ϴ�. ����������, 'unset' ���� �� ���� ȯ�� ���� PROMPT_COMMAND�� ���ŵǾ����ϴ�. ���ɾ� ��ġ�� ���� $() ����� ���� �Ϳ� �����Ͻʽÿ�: ��,

$(date +%H%M)

�� "���⿡�� 'date +%H%M' �������� ������ ������� ��ġ�Ͻÿ�" ��� �ǹ� �Դϴ�. �̰��� �转2.0+ ���� �۵��մϴ�. 1.14.7 ������ ��� �� ������ �转 ������ ���ο� ��ȣ(backquates)(`date +%H%M`)�� �ʿ��� ���� �����ϴ�. ���ο� ��ȣ�� �转2.0+ ������ ��� ����������, $() ����� �� ��ȣ �Կ� ���� ����� ���� ������, $() ����� �ڸ��� ���� ���� �����ϴ�. �� ���������� �� ������� ��� �� �� �Դϴ�. ���� ���� ������ ����ϰ� ��ôٸ�, $() �� ��Ÿ���� ������ ���ο� ��ȣ�� ��ġ�ϸ� �� ���Դϴ�. ����, ���ɾ� ��ġ�� �̽����� ó���Ǿ� �ִٸ� (��, \$(command) ), basckslash('\')�� ����Ͽ� ������ ���ο� ��ȣ�� �̽����� ó�� �Ͻʽÿ�(��, \'command\' ).

3.2 ������Ʈ������ �ܺ� ���ɾ��

������Ʈ���� �������� ������ ������ ��� ����� ���� ��� �����մϴ�. �ʹ� ���� �͵��� ������Ʈ�� �����ϱ⸦ �������� ���� ���Դϴ�. �׷��� ������ ������Ʈ�� �ʹ� ����� �״ϱ��. ����, �ż��� ó���Ǵ� ���ɾ ����ϱ⸦ ���� ���Դϴ�. �ֳ��ϸ�, ��ũ���� ������Ʈ�� ��Ÿ�� �� ���� �׸��ɾ���� ����Ǿ�� �ϰ�, �۾��� �ϴ� ���ȿ� ������Ʈ�� ��Ÿ���� ���� �����ð� �� ���� �ֱ� �����Դϴ�.( ������ ���� ���� ������ ���������, �转1.14.7������ �۵��մϴ�)

[21:58:33][giles@nikola:~]$ PS1="[\$(date +%H%M)][\u@\h:\w]\$ "
[2159][giles@nikola:~]$ ls
bin   mail
[2200][giles@nikola:~]$

���ɾ� ��ġ�� �޷���ȣ('$') ���� backslash�� �����ϴ� ���� �߿��մϴ�. �װ��� ������ �ܺ� ���ɾ�� ��Ȯ�ϰ� �ѹ��� ����˴ϴ�: PS1 ������ �о� �鿩�� �� ����. �� ������Ʈ�� ��쿡��, ������Ʈ�� ���̰� �󸶳� �Ǵ��� ��� ���� ���ÿ� ǥ�õ� ���̶�� ���� �ǹ��մϴ�. backslash('\')�� ���� $()�� ������ �� �ؼ����� ���� ��ȣ�Ǿ�, "date" ������ ���ο� ������Ʈ �� ������ �� ���� ����˴ϴ�.

���������� ���� ������, date, grep, �Ǵ� wc �� ���� ���׸��� ��ƿ��Ƽ ���α׷����� �μ��Ǿ� �־�, ����Ÿ�� ó���� �� �ֵ��� �մϴ�. ����, �̵� ���α׷����� ���� ������ ������ �����ؼ� ������Ʈ �ȿ� �ְ��� �Ͻ� �ٸ�, ������ �ڽ��� �� ��ũ��Ʈ�� �ۼ��� ����, ������Ʈ���� �װ��� �ҷ� ���̴� ����� �� ���� �� �����ϴ�. ������ ���� �� �������� Ǯ�������� �ϱ� ���� �� ��ũ��Ʈ ������ ���� �̽����� ���������� �䱸�˴ϴ�(������ ������ ��¥ ���ɾ�� ����): �̰��� ������Ʈ PS1 ���� ������ �� �ܰ� ���� �������� �ö� ���� ���̸�, �� ��ũ��Ʈ�� �����Ͽ� ȸ���ϴ� ����� ���� �Ǹ��� ���̵���Դϴ�.

������Ʈ ������ ���Ǵ� ���׸� �� ��ũ��Ʈ ������ �Ʒ����� �־����ϴ�.

#!/bin/bash
#     lsbytesum - sum the number of bytes in a directory listing
TotalBytes=0
for Bytes in $(ls -l | grep "^-" | cut -c30-41)
do
    let TotalBytes=$TotalBytes+$Bytes
done
TotalMeg=$(echo -e "scale=3 \n$TotalBytes/1048576 \nquit" | bc)
echo -n "$TotalMeg"

���� �̰��� ���� ���� �Լ���(�ξ� ȿ����������-�����ϰԵ� �Լ��� ���� �ڼ��� ������ �� ������ ���� ���Դϴ�), �Ǵ� ��ο� ���ԵǾ� �ִ� ' /bin' ���丮�� �ִ� �� ��ũ��Ʈ�� ���������ϴ�. ������Ʈ�� ���Ǿ� �Ʒ��� ���� ����� �˴ϴ�.

[2158][giles@nikola:~]$ PS1="[\u@\h:\w (\$(lsbytesum) Mb)]\$ "
[giles@nikola:~ (0 Mb)]$ cd /bin
[giles@nikola:/bin (4.498 Mb)]$

3.3 ������Ʈ���� �ʿ��� �׹��� �͵�

��κ��� ���� ���� ������Ʈ���� �ð��� ���� ���丮�� �̸��� ���ԵǾ� �ִٴ� ���� �� �� �����ϴ�. ���⿡�ٰ�, ���������� ȿ������ Dan���� ���� ������Ʈ�� �ְ��� �մϴ�.

[giles@nikola:~]$ cur_tty=$(tty | sed -e "s/.*tty\(.*\)/\1/")
[giles@nikola:~]$ echo $cur_tty
p4
[giles@nikola:~]$ PS1="\!,$cur_tty,\$?\$ "
1095,p4,0$ 

���丮 ��θ� �ٲ޿� ���� ������Ʈ�� ũ�Ⱑ ���۽����� �ٲ� �� �ֱ� ������ Dan���� ������Ʈ�� ������ ���丮�� ǥ�õǴ� ���� �������� �����ϴ�. �׷��� �״� ���丮�� ���븦 ���� �Ӹ��ӿ� ����մϴ�(�Ǵ� "pwd"�� ġ�⵵ �մϴ�.) Dan���� cash�� tcsh�� ���н��� ������ ������, �״� ���ɾ� history�� ������ �ϰ� ����ϰ� ������(�츮���� ��κ��� �转�� ���ٰ� �ϱ⿡ �׷� �ʿ䰡 ������), �׷���, ���� ������Ʈ�� ù��° �׸��� ���ɾ� history ��ȣ�Դϴ�. �ι�° �׸��� tty�� �߿� ���ڵ� �Դϴ�("tty"�� ����� 'sed'�� �����ϴ�). ����° ���� ������ command/pipeline�� exit ���Դϴ�(note that this is rendered useless by any command executed within the prompt - you could work around that by capturing it to a variable and playing it back, though). ����������, "\$"�� �Ϲ� ����ڿ��Դ� �޷� ��ȣ�� ��Ÿ����, ����ڰ� ��Ʈ�� ��쿡�� �ؽ� ǥ��("#") �� ��Ÿ���ϴ�.

3.4 �转 ȯ��� �Լ���

�տ��� ��޵� �ٿ� ����, PS1, PS2, PS3, PS4 �׸��� PROMPT_COMMAND ���� ��� �转 ȯ������ ����Ǿ� �����ϴ�. DOS�� �ͼ��� �е��� ���� ū ����� ������ ȯ������ �ѱ�µ��� ���Ͽ� �η��� ������ ���� ���Դϴ�. �ֳ��ϸ� DOS�� ȯ���� ���׸��� ����, �� Ȯ�������� �ʾұ� �����Դϴ�. ȯ�濡 ���� �� �ְ� �־�߸� �ϴ� �͵鿡 ���ؼ� �������� ������ �������� ������, �װ͵��� ���� ������ �𸣰�, ���⿡�� �� DOS ����ڵ鿡�� �ͼ��� �׷� ȯ�溸�ٴ� �Ը� �־ �Ƹ� ��質 �ξ� �� ū �Ϳ� ���Ͽ� �̾߱⸦ �ϰ� �����ϴ�. �츮�� Dan���� ���մϴ�:

"���� ����ϴ� ������, 62���� �˸��ƽ��� 25���� �Լ��� �����ϴ�. ��迡�� ���� ����� ��쿡, � ���� �ܵ������� �ʿ��ϰ� bash���� ������ ���� ������ �� ����, �װ��� �� �Լ��� ����ٴ� ���� ���� ù��° ��Ģ�Դϴ�(�˸��ƽ��� ���� ǥ�� �� �� ���ٴ� �����Ͽ���). ���� �޸𸮿� ���ؼ� �����ϴ� ������� �ִٸ�, �׵��� bash�� ����� �ʿ䰡 �����ϴ�. Bash�� ���� ������ ��迡�� ����Ǵ� ���� ū ���α׷� ���� �ϳ��Դϴ�(Oracle�� �����ϰ�). ������ 'top'�� ���� ���Ѽ� ��� �޸𸮺��� �з��ϱ� ���� 'M'�� ���� ������-��Ͽ��� bash�� �󸶳� ���ʿ� ������ �ִ��� ���� ������. ��, sendmail���ٵ� �� ��ġ�� ũ����! �׵� ���� ���� ash�� �Ǵ� �ٸ� �͵��� ���϶�� �ϼ���"

�Ƹ��� �״� �� �۾��� �Ϸ��� �ϴ� ������ �ܼ��� ��������ʳ� �����մϴ�:X�� X���� ���α׷��� �����Ű��, �转���� �� ū �͵��� ���� �����ϴ�. �׷�����, ���̵��� �����մϴ�:ȯ���̶�� ���� ���Ǿ�� �ϴ� ���̰�, �װ��� ���� ��ġ�� ���� ������ �ʿ䰡 �����ϴ�.

���� �̷��� ���� ��(�ʹ� �ܼ�ȭ ���״ٴ� �Ϳ� ���ؼ�) ���н� ������ ���� å�� �� ���� ������ ������, �Լ����̶� �⺻������ ȿ������ ���� ȯ������ ����Ǵ� ���׸� �� ��ũ��Ʈ���Դϴ�. Dan���� ���� �ٽ� �ο��մϴ�:"�� �Լ����� ������ ��ŭ ȿ��ȭ �Ѱ��Դϴ�. It is the approximate equivalent of sourcing a bash/bourne shell script save that no file I/O need be done as the function is already in memory. �� �Լ����� ����������, �װ͵��� ������ �������� �ʿ����� �Ǵ� �Ϻ��� �������� �䱸�Ǵ°��� ����, [.bashrc �Ǵ� .bash_profile]�� ���� ����˴ϴ�. �� ��ũ��Ʈ �ϳ��� ���� ���Ѽ� �̰��� ����� ���ʽÿ�: ���� �б��Ͽ�, �ڽ� ���ν꽺�� exec �� �����ϰ�, potentially ��ΰ� ã������, Ŀ���� ������ ���� �� ������ ��� �������� �����ϱ����� ����� ����Ʈ�� �˻��ϸ�, �� ��ũ��Ʈ�� ��� ���� �� ��ũ��Ʈ�� �̸��� ������ �Ͽ� �����Ͽ��� �ϸ�, �� ������ ������ ����, �а� �� ������ �����մϴ�. �� �Լ��� ���Ͽ�, ������ �����ϴ� ���� ������ �ٸ� �͵��� ���ʿ��� ������ ���ֵ˴ϴ�."


���� ���� ����