このコマンドを使用して、最後に入力したコマンドを取得しています。
history | cut -c 8- | tail -n 2 | head -n 1
これはbashで非常にうまく機能し、行番号を削除しますが、問題が1つあり(コマンドだけが必要なため、煩わしい)、これをxsel
クリップボードマネージャーにパイプしています。 :
末尾の改行/キャリッジリターンも取得します...
私はあなたが使用できるいくつかのシェルで知っています:
echo "text \c"
それをbash
に組み込む方法はわかりませんが。
その場で入力するのが最も簡単なソリューションの追加ポイント:)
Bash組み込みの!!
を使用して履歴の最後のコマンドを取得し、echo -n
を使用して、末尾に改行文字を付けずにそのコマンドを出力できます。
echo -n !!
!!
引数は実際のコマンド文字列に展開され、-n
は出力に改行文字が含まれていないことを確認します。
私があなたの質問を正しく読んでいる場合は、末尾の改行を削除する必要があります。このPerlビットを試してください: `Perl -ne'chomp and print '
例:
[root@talara test]# ls -la
total 20
drwxr-xr-x 3 root root 4096 Jun 7 21:30 .
dr-xr-x---. 28 root root 4096 Jun 8 08:42 ..
-rw-r--r-- 1 root root 0 Jun 7 15:10 FILE1
drwxr-xr-x 3 root root 4096 Jun 7 14:49 ham
-rw-r--r-- 1 root root 36 Jun 7 21:31 t
-rw-r--r-- 1 root root 11 Jun 7 16:21 test
[root@talara test]# ls -la | Perl -ne 'chomp and print'
total 20drwxr-xr-x 3 root root 4096 Jun 7 21:30 .dr-xr-x---. 28 root root 4096 Jun 8 08:42 ..-rw-r--r-- 1 root root 0 Jun 7 15:10 FILE1drwxr-xr-x 3 root root 4096 Jun 7 14:49 ham-rw-r--r-- 1 root root 36 Jun 7 21:31 t-rw-r--r-- 1 root root 11 Jun 7 16:21 test
また、何度も何度も入力しやすくするために、エイリアスを作成できます。alias chomp="Perl -ne 'chomp and print'"