我有一個名爲script.sh的BASH腳本,它接受3個參數並用它們運行一個可執行文件。前兩個只是數字,但最後一個是給出輸入文件的參數。我希望腳本運行帶有輸入的可執行文件作爲可執行文件的參數,並使用「<」作爲stdin的替代文件。 (即在BASH中運行變量命令
bash script.sh 5 1 input.txt
調用bash腳本,並script.sh的內容如下:
#!/bin/bash
command1="./l${1}t${2} $3"
command2="./l${1}t${2} < $3"
echo + ${command1}
${command1}
echo + ${command2}
${command2}
當我回聲命令1,我得到
./l5t1 input.txt
這正是我想要和它運行得很好。
當我回顯command2我得到
./l5t1 < input.txt
這又是我想要的。問題是腳本運行的實際命令是
./l5t1 '<' input.txt
這當然引起我的程序分段錯誤。
我想知道是否有一種方法可以運行命令2,以便它完全按照在echo輸出中打印的那樣運行字符串。老實說,我不知道爲什麼單引號甚至插入在<字符周圍。
不管怎麼說,你應該能夠'eval'變量的內容。 – Rubens