import
スクリーンショットを撮って現在時刻というファイルに保存したいです。
私が試したことは次のとおりです。
sunqingyao:~$ date '+screenshot-%y%m%d-%H%M%S.png'
screenshot-170716-173336.png
# OK
sunqingyao:~$ import screenshot-170716-173336.png
sunqingyao:~$ ls -l screenshot-170716-173336.png
-rw-rw-r-- 1 sunqingyao sunqingyao 250556 Jul 16 17:35 screenshot-170716-173336.png
# OK
sunqingyao:~$ date '+screenshot-%y%m%d-%H%M%S.png' | import
import: missing an image filename `import' @ error/import.c/ImportImageCommand/1293.
# Not OK
何らかの理由で、私はこのコマンドを1行のコマンドにしたいと思います。
背景情報:
実際、i3を使ってスクリーンショットを撮るためにキーを押すようにしようとしています。私に関連する部分は次のとおりです~/.config/i3/config
。
# Take a screenshot upon pressing $mod+x (select an area)
# https://i3wm.org/docs/userguide.html#keybindings
bindsym --release $mod+x exec --no-startup-id date '+screenshot-%y%m%d-%H%M%S.png' | import
1行にしか入力できないコマンドにのみキーをバインドできるようです。これが一行が必要な理由です。
ベストアンサー1
xargs
他の回答で示唆されているように、常にコマンド置換を使用するか、パイピングとして提供されるものを使用できます。
$ date '+screenshot-%y%m%d-%H%M%S.png' | xargs -I {} import {}
$ ls screenshot-*
screenshot-170716-042853.png