2012-04-13 29 views
7

Trong tập lệnh của tôi, tôi đang giữ vị trí (đường dẫn) của tệp dưới dạng biến.Lưu trữ thư mục dưới dạng biến để sử dụng sau này trong tập lệnh linux

Ví dụ, fileA

Một ví dụ về nội dung của nó là

fileA =/usr/anotherfolder/somefold/"filenamehere"

Tuy nhiên, khi tôi gọi một lệnh vào file trong kịch bản như:

mèo $ fileA

hoặc

cat "$ fileA"

Tôi gặp lỗi khi nói tệp hoặc thư mục không tồn tại. Nếu tôi echo $ fileA để xem những gì đầu ra là, và sau đó chạy một con mèo bằng tay từ thiết bị đầu cuối, nó hoạt động tốt, không biết những gì đang xảy ra sai. Bất kỳ giúp đỡ?

Một số thông tin gỡ lỗi:

  • fileA = '/ home/jacob/Desktop/CS35L/WORK/2/hw/Test3/"mới"'
  • echo '/ home/jacob/Desktop/CS35L/WORK/2/hw/test3/"mới" ' /home/jacob/Máy tính để bàn/CS35L/WORK/2/hw/test3/"mới"
  • ' [''! ' -r '/ home/jacob/Desktop/CS35L/WORK/2/hw/Test3/"mới"' ']'

Đối với những dòng này đặc biệt

Kiểm tra file có thể đọc

echo $fileA 
if [ ! -r "$fileA" ] 
then 
    o=`expr $o + 1` 
    echo "$fileA not readable." 
    continue  
fi 
+0

thử 'cat" $ fileA "'. Chúc may mắn. – shellter

+0

đã thử điều này, nhưng nó đã không thay đổi kết quả – jsjwooowooo

+0

Không '$ fileA' chứa ký tự đặc biệt? – kev

Trả lời

10

Nếu tên tập tin là new (không "new"), sau đó thay đổi

fileA='/home/jacob/Desktop/CS35L/WORK/2/hw/test3/"new"' 

để

fileA=/home/jacob/Desktop/CS35L/WORK/2/hw/test3/new 
+0

Tôi không tin rằng tôi đang bổ sung thêm những dấu nháy đơn, bất kỳ ý tưởng làm thế nào họ đến đó? Họ không thể hiện lên trong đầu ra tiếng vang? Tôi nghĩ đó chỉ là cú pháp đầu ra gỡ lỗi – jsjwooowooo

+0

@jsjwooowooo Tôi không hiểu thông tin gỡ lỗi của bạn – kev

+0

Tôi vừa chạy tập lệnh bằng lệnh -xv và đó là những gì được xuất ra – jsjwooowooo

Các vấn đề liên quan