无法将读取输入传递给cat路径

时间:2016-12-27 14:54:05

标签: linux bash shell scripting

这里是bash的新手。我正在尝试将读取输入传递给cat命令的文件路径。

read -p  "enter folder" folderid
read -p "enter port (optional)if not required press 0:" port
if [$folderid -ne 0 && $port -ne 0];then
new_interface=$(cat /var/abc/def/xyz_$fileid/randomfile)
echo "$new_interface"
fi

folderid的示例输入:134567

我收到错误声明:

  

-bash:[134567:找不到命令

不确定我做错了什么,尝试过不同的事情似乎没什么用。

2 个答案:

答案 0 :(得分:1)

[之后添加一个空格,完整的无错误脚本应为

read -p "enter folder" folderid
read -p "enter port (optional)if not required press 0:" port

if [ "$folderid" -ne 0 ] && [ "$port" -ne 0 ]; then
    new_interface="$(</var/abc/def/xyz_$fileid/randomfile)"
    echo "$new_interface"
fi

如果预期folderid是字符串使用

if [ ! -z "$folderid" ] && [ "$port" -ne "0" ];then

另外,删除

中无用的猫
new_interface=$(cat /var/abc/def/xyz_$fileid/randomfile)

new_interface="$(</var/abc/def/xyz_$fileid/randomfile)"

答案 1 :(得分:1)

shell的标记生成器对空白区域敏感。单词在空格和特殊字符(如;&&&和其他字符)中分开。使用

if [ $folderid -ne 0 -a $port -ne 0 ]; then