私は次のコードを見つけました。
function cursorBack() {
echo -en "\033[$1D"
}
...
tput civis
...
cursorBack 1
数字は何をしますか?
答え1
これは関数のパラメータです。$1
文字列のecho部分に注意してください。これはbash関数で使用される最初のパラメータです。他のパラメータ(cursorBack 5
evenなど)を使用して関数を実行し、cursorBack foo
何が起こるかを確認してください。
echoコマンドの最初の部分はANSIエスケープで、その後に関数引数(数字)、最後に文字が続きますD
。この文字は、戻る(文字を削除せずに削除と見なす)を意味するため、n位置(例では1位置)の後ろに移動します。
論理的に言えば、foo
引数として使用すると期待どおりに実行されません。この特別な場合、引数は単に(整数)数でなければなりません。