hyudai28 / minishell_42

0 stars 1 forks source link

エッジケース共 #16

Open hyudai28 opened 2 years ago

hyudai28 commented 2 years ago

42tokyoのレビューから引用

hyudai28 commented 2 years ago

cd pwd currentを削除して移動したときpwdが正しく修正されず、cdの挙動が合わないケースがありました

hyudai28 commented 2 years ago

PATH ":"や"", unsetでカレントからコマンドが実行されませんでした

hyudai28 commented 2 years ago

permissionのないコマンドのエラーがハンドルされていませんでした

hyudai28 commented 2 years ago

環境変数 bashはcmdがexportのときは単語分割がおきないようです

hyudai28 commented 2 years ago

heredoc inquoteが未初期化になるケースがありました。forkせずに受け取ることもできそうです

hyudai28 commented 2 years ago

prompt、echo backが標準出力に出ていました

hyudai28 commented 2 years ago

cat file | minishellやminishell <fileのような実行でもプロンプトやexitが出力されていました

hyudai28 commented 2 years ago

signal関数は処理系定義の動作を多く含むのでsigactionを使った方がいいかも

hyudai28 commented 2 years ago

echo '\n' -> \n, echo "\n" -> n"

hyudai28 commented 2 years ago

echo a > b < a (a ファイルが存在しない) というケースでpointer being freed was not allocatedというエラーが出ました。

hyudai28 commented 2 years ago

set_redirection.cファイルの126行目にdata->cmd = cmdの一文を追加したら挙動が正常になるかもしれません。

hyudai28 commented 2 years ago

export = で空の環境変数が生成される。

hyudai28 commented 2 years ago

./minishellを連続で起動した場合の、シグナルの挙動

hyudai28 commented 2 years ago

shellを連続で起動するとSHLVL環境変数がインクリメントされる

hyudai28 commented 2 years ago

cat | ls

hyudai28 commented 2 years ago

echo ${PIPESTATUS[@]} 141) ctr + \