DOS コマンドを Bash コマンドに変換

DOS コマンドを Bash コマンドに変換

Bashが引数を含むDOSコマンドを受け入れるようにし、基本コマンドをBashコマンドに変換し、引数がある場合は引き続き使用する必要があります。

私が失った部分は*) Command Not Found!に閉じ込めずに個々のケースに引数を渡す方法です。

たとえば、ユーザー入力は次のようになります。

copy file1.txt file2.txt

ユースケース:copyその後、Linuxコマンドを実行しcpてコピーを渡した2つの引数で完了する必要があります。

#!/bin/bash

while :
do
read INPUT_STRING
case $INPUT_STRING in
        chdir|CHDIR)
        cd $arg1
        bash myscript.sh
;;
        cls|CLS)
        clear
        bash myscript.sh
;;
        copy|COPY)
        cp $arg1 $arg2
        bash myscript.sh
;;
        createdir|CREATEDIR)
        mkdir $arg1
        bash myscript.sh
;;
        delete|DELETE)
        rm $arg1
        bash myscript.sh
;;
        dir|DIR)
        ls
        bash myscript.sh
;;
        move|MOVE)
        mv $arg1 $arg2
        bash myscript.sh
;;
        print|PRINT)
        echo $arg1
        bash myscript.sh
;;
        quit|QUIT)
        break
        PS1="n01396736@cisvm-cop4640-2:~$ "
;;
        rename|RENAME)
        mv $arg1 $arg2
        bash myscript.sh
;;
        type|TYPE)
        cat $arg1
        bash myscript.sh
;;
        *)
        echo "Command Not Found!!"
        bash myscript.sh
;;
esac
break
done

ベストアンサー1

正しい方向を教えてくれたRomiyaとMichael Prokopekに感謝します。これは私が終了し、期待どおりに動作します。バグを発見したり、コードを改善できる場合はお知らせください。これは私が作った最初のLinuxスクリプトです。

#!/bin/bash

counter=1
while : [$counter -lt 2]
do
read -p 'Your Name Here > ' cmd "arg"

case $cmd in
chdir|CHDIR)
        cd $arg
        ;;
cls|CLS)
        clear
        ;;
copy|COPY)
        cp $arg
        ;;
createdir|CREATEDIR)
        mkdir $arg
        ;;
createfile|CREATEFILE)
        touch $arg
        ;;
delete|DELETE)
        rm $arg
        ;;
dir|DIR)
        ls
        ;;
move|MOVE)
        mv $arg
        ;;
print|PRINT)
        echo $arg
        ;;
quit|QUIT)
        counter=2
        ;;
rename|RENAME)
        mv $arg
        ;;
type|TYPE)
        cat $arg
        ;;
*)
        echo "Command Not Found!!"
        ;;
esac
done

おすすめ記事