2011-01-11 24 views

Trả lời

17

Nếu bạn đang muốn đây là một kịch bản, kịch bản Bash sau nên làm những gì bạn muốn (cộng cho bạn biết khi tập tin đã tồn tại):

#!/bin/bash 
if [ -e $1 ]; then 
    echo "File $1 already exists!" 
else 
    echo >> $1 
fi 

Nếu bạn không muốn "đã tồn tại" tin nhắn, bạn có thể sử dụng:

#!/bin/bash 
if [ ! -e $1 ]; then 
    echo >> $1 
fi 

Chỉnh sửa về cách sử dụng:

Lưu phiên bản nào có tên bạn muốn, giả sử "create_file" (trích dẫn của tôi, bạn không muốn chúng trong tên tệp). Sau đó, để làm cho các tập tin executatble, tại dấu nhắc lệnh làm:

chmod u+x create_file 

Put the file in a directory in your path, sau đó sử dụng nó với:

create_file NAME_OF_NEW_FILE 

Các $ 1 là một biến vỏ đặc biệt trong đó có các đối số đầu tiên trên lệnh dòng sau tên chương trình; tức là $ 1 sẽ nhận NAME_OF_NEW_FILE trong ví dụ sử dụng ở trên.

+0

$ 1 là gì, ở đây? – switz

+0

Tôi có thể thay thế bằng "text.txt" không? – switz

+1

@Switz: Xem chỉnh sửa giải thích $ 1. Nếu bạn thay thế $ 1 trong tập lệnh bằng "text.txt", nó sẽ luôn sử dụng "text.txt" làm tên tệp. – GreenMatt

2

Câu hỏi của bạn hơi mơ hồ. Đây là một lệnh shell mà những gì tôi nghĩ rằng bạn muốn làm:

echo >> name_of_file 
10

Giả sử bạn có nghĩa là các lệnh shell UNIX, chỉ cần chạy

echo >> file.txt 

echo in một dòng mới, và >> nói với vỏ để thêm dòng mới vào tệp, tạo nếu nó chưa tồn tại.

Để trả lời đúng câu hỏi, tuy nhiên, tôi cần biết bạn muốn điều gì xảy ra nếu tệp đã tồn tại. Nếu bạn muốn thay thế nội dung hiện tại của nó với xuống dòng, ví dụ, bạn sẽ sử dụng

echo > file.txt 

EDIT: và để đáp lại lời nhận xét của Justin, nếu bạn muốn thêm xuống dòng chỉ khi các tập tin không đã tồn tại, bạn có thể làm

test -e file.txt || echo > file.txt 

Ít nhất nó hoạt động trong Bash, tôi cũng không chắc nó có hoạt động trong các vỏ khác hay không.

+0

+1. Tôi nghĩ rằng có 1 cách giải thích khác có thể: tạo và viết một dòng mới nếu tập tin chưa tồn tại, nếu không thì không sửa đổi tập tin. –

+0

@Justin: tốt điểm, tôi đoán tôi có thể thêm rằng một trong quá và chúng tôi sẽ có tất cả các tùy chọn được bảo hiểm. –

42

Tạo tệp văn bản trong Unix có thể được thực hiện thông qua trình soạn thảo văn bản (vim, emacs, gedit, v.v.). Nhưng những gì bạn muốn có thể giống như thế này

echo "insert text here" > myfile.txt 

Điều này sẽ đặt văn bản 'chèn văn bản vào đây' vào tệp myfile.txt. Để xác minh rằng điều này làm việc sử dụng lệnh 'mèo'.

cat myfile.txt 

Nếu bạn muốn thêm vào một tập tin sử dụng này

echo "append this text" >> myfile.txt 
Các vấn đề liên quan