簡體   English   中英

從終端將參數傳遞到bash

[英]Pipe arguments into bash from terminal

假設我有腳本convertToPNG.sh

convert $1 output.png

我可以通過終端$ converToPNG img.jpg調用它。

但是,如果我只有字符串"convert $1 output.png" ,而我想通過在一行中全部傳遞一個參數來執行它,該怎么辦?

我不想將字符串另存為文件,然后使用傳入的參數運行腳本。沒有一種更簡單的方法來將參數傳遞給$1

您應該使用eval 它需要一個字符串並執行它。 例如:

eval "convert $1 output.png"

但是請注意,它會執行任何字符串,因此您應該仔細驗證$1參數,否則任何人都可以在系統中執行任何命令。

編輯:如果您要用img.gif替換每個$1 ,請嘗試以下操作(單個quopt:

bash -c 'convert $1 output.png' 'ignore' 'img.gif'

那是一個奇怪的用例,但是如果您確實希望可以定義函數並將其參數全部傳遞給一行:

$ myconvert(){ convert "$1" output.png; }; myconvert whatever.gif

whatever.gif是要轉換的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM