スクリプト作成の最初のパラメータ:ファイル/ディレクトリ、その他のパラメータ:コマンド

スクリプト作成の最初のパラメータ:ファイル/ディレクトリ、その他のパラメータ:コマンド

次の構造のパラメータリストを受け取るスクリプトを作成したいと思います。

  • 最初のパラメータ:ファイルまたはディレクトリ
  • その他のパラメータ:システムのコマンド名(例datepwd、、、、、、)tailheadls

スクリプトは、最初の引数として受け取ったファイル/ディレクトリからすべてのコマンド(2番目の引数から始まる)を実行します。

このスクリプトを試しましたが、コマンドオプションは利用できません。-l -i -n どうすればいいですか?

#!/bin/bash

name=$1
shift

for cmd in "$@" 
do
    if [ -e $name ]
    then
        echo Executing:$cmd
        ($cmd $name)2>/dev/null
        if [ $? -ne 0 ]
        then
            echo error
        fi
    else
        exit 7
    fi
done

ベストアンサー1

getoptsそれともgetoptそれが答えです。

getoptsたとえば、ショートカットを使用でき、-i使いやすくなります。また、bashに組み込まれており、常に利用可能です。

getoptなどの長いパラメータを使用できる外部ツールであり、--input-file使用するのは少し難しいです。これは外部ツールであり、理論的には存在できませんが...

ここで簡単なチュートリアルを読んでください: https://dustymabe.com/2013/05/17/easy-getopt-for-a-bash-script/

おすすめ記事