Bash dosyasında 'cd' komutları çalışmıyor

Merhaba, iyi günler. Arada Linux Kabuklarını öğrenmeye çalışıyorum. Aşağıda; “Linux Shells” dosyası içindeyken ana dizine gelip, oradan SDCard içindeki “Projeler” dosyasına gitmesini istediğim kısa bir kod yazdım.

!#bin/bash/

cd
ls /storage/A894-12FA/'Projeler'
cd /storage/A894-12FA/'Projeler'

Fakat ‘cd’ komutları çalışmıyor. Kod Editörde mavi olarak görülüyor. Farklı şekilde yazmayı, semboller koymayı denedim olmadı. Yardım edebilir misiniz?

cd komutuna klasör parametresi vermemişsiniz. Hangi klasöre gideceğini bilmiyor şu an. Gideceği yolu verin.

ls komutu klasör içindeki dosyaları listelemek içindir. Ne amaçla kullandığınızı anlamadım.

How to Use the cd Command in Bash Scripts | Baeldung on Linux

basit komut kullanımına tekrar bakmanızda fayda var.

tek başına cd komutu ile klasör değiştiremezsiniz.

Cevapladığınız için memnunum;

ls komutu çalışmakta fakat ‘cd’ komutları çalışmamakta. Belki Bash’ın komut olarak anlayabilirceği bir sembol-yazım biçimi vardır diye düşünüyorum. Bu işte yeni sayılırım. Neyin ne olduğunu anlayamabilirim.

Dizin konusunda: Komut İstemcisi kendi dizindeki “Linux Shells” dosyasındayken. Ana Dizine geçip, belirtiğim yolu listelemsini ve oraya geçmesini istiyorum.

ls komutu çalışmakta çünkü siz ls komutuna bir klasör yolu vermişsiniz. Doğal olarak ls ile verdiğiniz path deki dosyaları size listeler.

Ama ilk cd komutuna hiç bir parametre vermediğinizde cd komut sizi hiç bir yere götürmez.

Herhangi bir dizine yada root dizinine geçmek isterseniz yolu/path i belirtmelisiniz. Ama farklı volume deki path i verecekseniz ilgili mount ettiğiniz volume’ü de vermelisiniz.

EDIT:

/dev/sdb1

gibi bağlı cihazınızın tam yolunu vermeniz gerekir desem daha anlaşılır belki. SD kartınızı nereye mount ettiğinizi sadece tahmin edebiliyorum. Emin olamayız. Ama özetle tam yolunu verirseniz cd komutuna ancak o durumda o dizine geçebilirsiniz.

1 Beğeni

Bi denerim. Olur veya olmaz geri dönüş sağlarım.

Yanılıyor olabilirim. Eğer bu komut ile sd kartınıza erişebiliyor ve içindeki dosyaları listeleyebiliyorsanız sd karta erişiminiz var demektir.

Cd ile geçtiğinizde bu durumda sd kartınızın dizinine ulaşabiliyorsunuz demektir.

Komutun çalışmadığı düşüncesine nereden vardınız? Tekrar sadece "ls -l "komutu vererek bulunduğunuz klasördeki dosyaları listeletmeye çalışın. Eğer sd kart içindeki dosyalar listeleniyorsa bir problem yok demektir.

Ufak şeyler denedim. En son ‘cd’ komutunu sildim yine çalışmadı malesef.

Screenshot_20230624_013120

Screenshot_20230624_013148

#!/bin/bash. Shell script’lerinin nasil yazildigini, hashbang/shebang’in ne oldugunu tekrar okumaniz lazim. Bu yanlis satiri herhangi bir kaynakta gorduyseniz o kaynagi terk edin ve bir daha donmeyin.

Iki kere CWD degistirmenize ragmen CWD’yi kullanmadiginizin farkindasiniz, degil mi?

Calismamak ne demek?
Veya, ne olmasini bekliyordunuz, ne oldu?

Bu noktada yazi rengi tercihlerinden bahsetme sebebiniz nedir?

Baska bir renk istiyorsaniz, ayarlardan degistirmeyi veya baska bir editor kullanmayi deneyebilirsiniz.

#!/bin/bash. Shell script’lerinin nasil yazildigini, hashbang/shebang’in ne oldugunu tekrar okumaniz lazim. Bu yanlis satiri herhangi bir kaynakta gorduyseniz o kaynagi terk edin ve bir daha donmeyin.

Konuyu açarken yazım yanlışı olmuş. Normalde sizin yazdığınız şekilde.

Iki kere CWD degistirmenize ragmen CWD’yi kullanmadiginizin farkindasiniz, degil mi?

Farkında değilim. İlk defa sizden duydum.

Calismamak ne demek?
Veya, ne olmasini bekliyordunuz, ne oldu?

Burada daha iyi bir şekilde anlattım.

Dizin konusunda: Komut İstemcisi kendi dizindeki “Linux Shells” dosyasındayken. Ana Dizine geçip, belirtiğim yolu listelemsini ve oraya geçmesini istiyorum.

Bu noktada yazi rengi tercihlerinden bahsetme sebebiniz nedir?
Baska bir renk istiyorsaniz, ayarlardan degistirmeyi veya baska bir editor kullanmayi deneyebilirsiniz.

Bahsetme sebebim “ls /storage/A894-12FA/‘Projeler’” kod kısmı Beyaz görünürken “cd” komutuyla başlayan kısımların Mavi ve Anahtar Kelime olarak görünmesi. Yukarıdaki ScreenShot’ta görebilirsiniz.

Script’i calistiran shell’in dizin degistirmesini bekliyorsaniz, bu mumkun degil. Bir program, baska bir programin CWD’sini degistiremez.

Kullandiginiz shell’de source veya . gibi bir komut varsa bunu kullanarak dosyanin icindeki komutlarin o shell’de calismasini saglayabilirsiniz. (Shebang satiri # ile basladigi icin kaale alinmayacaktir.)

Hangi editoru kullandiginizi ve nasil ayarlandigini bilmiyorum (screenshot’ta da gozukmuyor), fakat bunun sebebi cd’nin bir bash komutu olmasi olabilir.

1 Beğeni