2016-12-14 13 views

答えて

4

スクリプトでPATH変数を設定する際に、共通のバイナリが存在するシェルを示すデフォルトのPATH変数を上書きしています。これは、大文字を使用しないようにも良いでしょう、あなたのPATH変数名を変更、またはフルLSパス '/ binに/ ls' の

#!/bin/bash 
PATH="/Movies" 
MOVIES=${PWD}${PATH} 
LS="/bin/ls -lp ${MOVIES}" 

$LS 

または

#!/bin/bash 
NOTPATH="/Movies" 
MOVIES=${PWD}${NOTPATH} 
LS="ls -lp ${MOVIES}" 

$LS 

詳細here

+0

あなたの例を試しましたが、これは "ls -lp/Users/myUser/Movies"という出力になります。 – user2924482

+0

あなたの出力は何ですか?私のシェル(Ubuntu 16.04)で使用すると、両方のディレクトリの内容が期待通りに表示されます。スクリプトがコマンドをエコーし​​て実行しないことを意味しますか? – LukeS

+0

私が望む出力は、そのディレクトリにあるファイルのリストです – user2924482

1

を使用しますかシェルスクリプトの変数は、システム全体の環境変数のデフォルトパターンです。この方法で、あなた自身でいくつかの変数を上書きすることは避けられます。必要な場合は、envコマンドを実行して、bashセッションでどの変数が設定されているかを確認します。

関連する問題