Bashでインタラクティブにパラメータを1行ずつ追加します。

Bashでインタラクティブにパラメータを1行ずつ追加します。

時には、クリップボードにファイルや文字列のリストがあり、引数リストとして bash シェルに貼り付けたい場合があります。

サンプルファイルのリスト(例のみ):

createsnapshot.sh
directorylisting.sh
fetchfile.sh

私が望むもの:

md5sum createsnapshot.sh directorylisting.sh fetchfile.sh

現在、次のハッキングコマンドラインを入力します(ファイル名はクリップボードに貼り付けられており、リストには数十行を含めることができます)。

md5sum $(echo $(echo "
createsnapshot.sh
directorylisting.sh
fetchfile.sh
"))

これにはいくつかの欠点があります。

  • 複雑
  • 良く見えない
  • スペースを含む行はサポートされていません。

他にどのようなオプションがありますか?md5sum "この場合、複数行の文字列を持つパラメータのみを取得するため、機能しません。ここの記事に似ています。

必ずしもそうではありませんmd5sumtarまたは、git addどちらでもかまいませんdu -hsc。私はこれらのファイルのmd5チェックサムを取得する方法を要求するだけではありません。このようなことが1日2〜5回程度起こります。

ベストアンサー1

バックティック呼び出しなどの変数やダミー変数を引用しない場合(例$(xclip -selection c -o):この場合(クリップボードの内容を最初に確認してください))、必要なものは次のとおりです。$IFS\t \n

md5sum `xclip -selection c -o`

メモ:

必要なコマンドの周りに短い名前のラッパーを置くことは非常に便利ですxclip

私は使う

#!/bin/sh
#filename: cb
if [ -n "$DISPLAY" ]; then
    [ -t 0 ] && exec /usr/bin/xclip -selection c -o 2>/dev/null
    /usr/bin/xclip -selection c
else
    [ -t 0 ] && exec cat "/dev/shm/$TTY_DASHED"
    cat > /dev/shm/"$TTY_DASHED"
fi

これにより、コンテンツを入力してcbクリップボードにアクセスしてsomething | cbコンテンツを作成できます。

DISPLAY(私が外にTTY_DASHEDいるなら.profileexport TTY_DASHED=$(tty |tr / - | tail -c+2)

おすすめ記事