パスワードを読み取るには、エコーをオフにしてパスワードを読み取り、エコーを再度有効にします。csh:
stty -echo
echo -n "Enter password: "
set password = $<
stty echo
メニューを作成するには、選択肢を画面にエコーしてから、値を読み戻します。csh:
echo 1 first item
echo 2 second item
echo 3 third ...
echo -n "Enter Choice: "
set choice = $<
bash での同じ 2 つのタスクは次のとおりです。
パスワードの読み取り:
echo -n "Enter password: "
read -s password
メニューを作る:
select choice in "first item" "second item" "third..." do
test -n "$choice" && break;
done
パスワードの読み取りとメニューの作成が bash に組み込まれていることに注目してください。簡単であることに加えて、スクリプトで行われるいくつかの一般的なことは、csh では不可能です。Csh はスクリプト言語として設計されていません。Bash、Python、Ruby、Perl、または低レベルの/bin/shを使用して、数行にわたるスクリプトを作成する方がはるかに簡単です。
そうは言っても、パスワードとメニューメソッドを示す完全なcshスクリプトは次のとおりです。
#! /bin/csh
set PW="ok"
### Read Password
echo -n "enter passwd: "
stty -echo
set passwd = $<
stty echo
if ( "$passwd" == "$PW" ) then
echo Allrighty then!
else
echo "Try again. Use '${PW}'."
exit 1
endif
### Menu
@ i = 1
set items = (one two three four five six seven)
foreach item ( $items[*] )
echo "${i}) $item"
@ i = $i + 1
end
set choice = 0
while ( $choice < 1 || $choice > $#items )
echo -n "Select: "
set choice = $<
end
echo "You chose ${choice}: $items[$choice]"
ノート
csh は、その多くの革新的な機能によりインタラクティブな使用で人気がありますが、スクリプト作成ではかつてないほど人気がありました[1]。
1 ウィキペディア