[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
user:zeman:prechod-z-tcsh-na-bash [2009/06/10 09:03]
zeman vytvořeno
user:zeman:prechod-z-tcsh-na-bash [2009/06/10 22:51] (current)
stepanek odpovědi na otázky
Line 4: Line 4:
  
  * [[http://en.wikipedia.org/wiki/Comparison_of_computer_shells]]  * [[http://en.wikipedia.org/wiki/Comparison_of_computer_shells]]
- * [[http://kb.wisc.edu/cae/index.php?pagid=9668 Bash shell details]] 
  
 ===== Syntaxe ===== ===== Syntaxe =====
Line 30: Line 29:
 <code bash>command > x.out 2> x.err</code> <code bash>command > x.out 2> x.err</code>
  
 +
 +==== Podmínky a smyčky ====
 +
 +Konstrukce, které řídí běh programu, mají v obou shellech odlišnou syntaxi.
 +
 +''tcsh:''
 +
 +<code tcsh>foreach i (apple pear orange)
 +  echo cp ${i}s.txt my_$i.txt
 +end
 +
 +if (-f file.txt) then
 +  echo 'Oh yes!'
 +endif</code>
 +
 +''bash:''
 +
 +<code bash>for i in apple pear orange
 +  do echo cp ${i}s.txt my_$i.txt
 +done
 +
 +if [[ -f file.txt ]] ; then
 +  echo 'Oh yes!'
 +fi
 +</code>
 +
 +
 +===== Nevyřešené problémy =====
 +
 +  * V bashi mi nefungoval příkaz alias. Čím ho nahradím?
 +    * alias je builtin, ten by fungovat opravdu měl (např. ''alias ls='ls -F --color=au' '')
 +  * V tcsh jsem zvyklý, že ALT+P mi v historii projde příkazy, které začínají stejně, jako to, co už jsem napsal na aktuální příkazový řádek. Jak se to udělá v bashi?
 +    * v ''.inputrc'' si na nějakou klávesu nabinduješ ''history-search-backward'', myslím, že defaultně to nikde není
 +  * Chci, aby můj prompt byl v tvaru ''9:05 zen:/ha/home/zeman> ''. V tcsh mi trvalo několik týdnů, než jsem přišel na to, jak to udělat, ale od té doby už to spokojeně používám přes 10 let. V bashi to chci určitě stejně.
 +    * Stačí nastavit proměnnou ''PS1'', zřejmě na něco jako ''"\A ${HOSTNAME%%.*}:\w>"''
 +    * S tím souvisí, že ''pwd'' se chová jinak v tcsh a jinak v bashi. V tcsh se dozvím skutečnou cestu (tj. všelijaké symbolické linky jsou odmaskované), například vidím, že ''/home/zeman'' ve skutečnosti vede na ''/ha/home/zeman''. Pwd v bashi mi ale pořád říká ''/home/zeman''. Nejraději bych uměl na požádání vyvolat kterékoli z těchto chování, ale rozhodně bych rád měl nějaký způsob, jak skutečnou cestu zjistit.
 +      * ''readlink -f''

[ Back to the navigation ] [ Back to the content ]