这里是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:找不到命令
不确定我做错了什么,尝试过不同的事情似乎没什么用。
答案 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