我正在寫一個 shell 腳本practice.sh。我想$1從命令列到ls腳本中的命令給出我的第一個引數。例如,如果我在終端中運行我的腳本,
我想用于命令$bash practice.sh *.mp3
的引數*.mp3ls
#!/bin/bash
output=$ls $1
它沒有任何幫助?
uj5u.com熱心網友回復:
你說你想要什么的顯而易見的答案就是
#!/bin/bash
ls "$1"
它將運行ls,將它(僅)傳遞給腳本的第一個引數。
但是,您還說您想像這樣運行:practice.sh *.mp3它運行帶有許多引數(不僅僅是一個)的腳本——*.mp3將被擴展為當前目錄中的所有 .mp3 檔案。為此,您可能想要更像
#!/bin/bash
ls "$@"
這會將所有引數傳遞給您的腳本(無論有多少)到ls命令。
這些腳本將在ls其標準輸出連接到您的腳本的標準輸出連接到的任何內容的情況下運行,因此輸出(可能)只會出現在您的終端上。如果你想捕獲ls命令的輸出(這樣你就可以用它做其他事情),你需要像
#!/bin/bash
output=$(ls "$@")
它將ls使用所有引數運行,并捕獲變數中的輸出$output。然后您可以使用該變數執行操作。
uj5u.com熱心網友回復:
使用shell擴展將命令的輸出記錄在變數中output:
output=$(ls $1)
這將ls $1在變數中記錄命令的輸出output。然后您可以使用它echo $output來列印輸出。
您可以在GNU Bash 參考手冊中閱讀有關 shell 擴展的更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/391137.html
