Linuxでパラメータ間で文字を交換または挿入する方法は?

Linuxでパラメータ間で文字を交換または挿入する方法は?

私たちはアプリケーションをSolarisからLinuxに移行しており、添付ファイル(-a)オプションを使用するとLinuxの電子メール機能(mutt)が動作します。したがって、すべてのシェルスクリプトを変更するのではなく、最初の電子メールが表示される前に「--」を挿入するラッパースクリプトを作成する予定です。

mutt -a "file1" -a "file2" -s "subject" [email protected] [email protected] < /dev/null

到着

mutt -a "file1" -a "file2" -s "subject" "--" [email protected] [email protected] < /dev/null

また、電子メールを識別するために使用される「--」を無視するようにmutt機能をグローバルに変更できますか?

ベストアンサー1

挿入するには--:

set -- -a "file1"  -a "file2" -s "subject" [email protected] [email protected]

args=()
while getopts :a:s: opt; do 
    case $opt in 
        a) args+=( -a "$OPTARG" );; 
        s) args+=( -s "$OPTARG" );; 
    esac
done
shift $((OPTIND - 1))
args=( "${args[@]}" -- "$@" )

echo "${args[@]}"
-a file1 -a file2 -s subject -- [email protected] [email protected]

私はあなたを理解していません:

電子メールを識別するために使用される「--」を無視するように mutt 機能をグローバルに変更します。

mutt のマニュアルページは、終了--オプションを明示的に提供します。

おすすめ記事