Bagaimana cara membuka beberapa Tab Terminal di folder yang berbeda (direktori kerja)?

10

Saya ingin satu skrip untuk membuka beberapa Tab di folder yang berbeda.

Saat mencari saya menemukan entri ini , tetapi pertukaran seperti terlihat di bawah membuka Terminal dengan tiga tab di folder rumah saya. Pesan kesalahan menunjukkan:

Failed to parse arguments: Unknown option --execute=cd /some/thing/

Scriptnya terlihat seperti ini:

#!/bin/sh
gnome-terminal --tab --execute="cd /some/thing/" \
          --tab --execute="cd /home/" \
          --tab --execute="cd /home/" \
exit 0

Variasi dengan --working-directory = "/ some / thing /" juga tidak membantu. Bisakah kamu melihat kesalahan?

Kerkdyk
sumber

Jawaban:

8

Berikut ini berfungsi untuk saya di Oneiric. Anda dapat menggunakan ini sebagai pengganti versi Anda:

#!/bin/bash
gnome-terminal --tab  --working-directory="/var/www/" --tab --working-directory='/home/' --tab --working-directory='/home/'
exit 0
Richard Holloway
sumber
3

Kesalahan spesifik Anda disebabkan oleh tidak menggunakan --executeopsi dengan benar. Jika Anda melihat kutipan dari halaman manual di bawah ini, Anda akan mencatat bahwa --execute tidak memiliki tanda sama dengan yang terdaftar sebagai bagian dari sintaks, karena hanya menjalankan seluruh sisa dari baris perintah. Contoh penggunaan yang benar adalah:

gnome-terminal --execute play '/home/cjohnson/Still Alive.mp3'

CATATAN PENTING:
Menggunakan cdadalah sedikit kasus khusus, anyway. cdtidak seperti kebanyakan perintah — ia tidak meluncurkan biner / executable-nya sendiri. Ini ditafsirkan secara langsung oleh bash(atau shell apa pun yang Anda gunakan). Oleh karena itu upaya untuk memohon cdtidak setuju dengan --executedan -xbendera (yang tampaknya ingin langsung menelurkan proses anak). Masalah yang sama akan terjadi (saya sudah memeriksa) dengan perintah lain yang langsung diproses oleh bashsuka home. Bahkan jika digunakan dengan benar, tanpa tanda sama dengan, itu masih akan menghasilkan kesalahan: "File atau direktori tidak ditemukan." Oleh karena itu menggunakan --working-directory=[DIRECTORY]opsi adalah pilihan terbaik untuk melakukan apa yang ingin Anda lakukan.

CATATAN PENTING LAINNYA:
Sekalipun ini bukan masalahnya, Anda masih akan mendapat masalah. Masalahnya terletak pada mencoba menggunakan --executeopsi ketika Anda benar-benar bermaksud arti --commandopsi. Dalam dokumentasi halaman manual, ia menyatakan secara spesifik

-e, --command = STRING
Jalankan argumen untuk opsi ini di dalam terminal.

-x, --execute
Menjalankan sisa baris perintah di dalam terminal.

(penekanan milikku)

Dengan kata lain, itu mungkin tidak akan menguraikannya seperti yang Anda pikir seharusnya. Menggunakan --executemencegah Anda dari meneruskan opsi lebih lanjut ke gnome-terminal.

Kutipan dari salah satu skrip saya sendiri tempat saya menjalankan banyak perintah di tab terpisah (nama diubah untuk privasi / keamanan saya):

gnome-terminal --tab --command="ssh cjohnson@GLaDOS" --tab --command="ssh drattman@GLaDOS"

(Kebetulan, mencoba menggunakan --commandbendera dengan cdatau homejuga akan menghasilkan kesalahan "Tidak ada file atau direktori" yang familier.)

Saya harap ini tidak terlalu lama. Saya hanya berusaha untuk teliti.

Dain42
sumber