シェルスクリプト総合 ..
123:112
09/06/24 13:57:32 qAybS9Ki
>119-122 レスありがとうございます。
今回作ったスクリプトでJMのbashを見ながら、こんな風にしてみました。
INTERRUPT=0
COMMAND=$(
if [[ $(builtin type -t w3m) != "file" ]]; then
echo "may not installed w3m" >&2
INTERRUPT=1
exit 1
fi
IFS=' '
set $(builtin type w3m)
echo $3
)
if [[ $INTERRUPT == 1 ]]; then
exit 1
fi
unset INTERRUPT
こんなトリッキーなものを書いたのは初めてですが、これでエイリアスの場合も大丈夫でしょうか?
# .bashrcにalias w3m='ls -l'と書いてみたのですが、
# type -tの結果がaliasになりませんでした。何故なのでしょうか...
letは目から鱗でした。
「数字じゃない文字列が入力された時」(例えば"aaa"とか)
をキャッチするために$?==2を使いたかったので、敢えて$(( ))を使えず、$( )を使っていました。
ですが、「セクション番号以外が入力された時」とまとめてしまえば、もっと安全ですね。
一貫性持たせるためにletを使わずにSECTION=$((OPTARG - 1));case云々...esac;
とできるか、と思いましたが、letも数字から始まっている文字列("3aa"とか)
だったりすると標準エラーに吐くのですね。便利です。let。
ファイルテストの部分は仰る通りです。わたしの勘違いです。
ご意見ありがとうございます。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5389日前に更新/221 KB
担当:undef