设置变量Linux
我不熟悉linux shell脚本,我正在尝试设置以下变量以获取从键盘传入的文件夹路径的大小。我一直收到一个错误,说选项无效。T 谁能告诉我我做错了什么?当我删除“size”变量并保持原样时,错误就会消失 谢谢设置变量Linux,linux,shell,ubuntu,Linux,Shell,Ubuntu,我不熟悉linux shell脚本,我正在尝试设置以下变量以获取从键盘传入的文件夹路径的大小。我一直收到一个错误,说选项无效。T 谁能告诉我我做错了什么?当我删除“size”变量并保持原样时,错误就会消失 谢谢 #!/bin/bash echo -e "\nEnter the first directory (relative path)" read dir1 size=find $dir1 -type f | wc -l echo $size 应该是: size=$(find $d
#!/bin/bash
echo -e "\nEnter the first directory (relative path)"
read dir1
size=find $dir1 -type f | wc -l
echo $size
应该是:
size=$(find $dir1 -type f | wc -l)
使用$()
表示法意味着应该运行命令并将其输出放在行上
这是因为变量被分配了文本值
myvar=foo
将字符串“foo”放入myvar
中,而不是变量foo的值或foo命令的结果
myvar=$foo
将变量foo
的值放入myvar
。及
myvar=$(foo)
将运行命令foo
的结果放入myvar
shell语法中有一个特殊部分,允许您在运行命令之前分配变量值,并且这些变量值仅为该命令设置。看起来是这样的:
x=foo1 y=foo2 command parameter ...
你写台词的方式
size=find $dir1 -type f | wc -l
size
被分配一个值“find”,然后
作为单独的命令执行。它应该是:
size=$(find $dir1 -type f | wc -l)
使用$()
表示法意味着应该运行命令并将其输出放在行上
这是因为变量被分配了文本值
myvar=foo
将字符串“foo”放入myvar
中,而不是变量foo的值或foo命令的结果
myvar=$foo
将变量foo
的值放入myvar
。及
myvar=$(foo)
将运行命令foo
的结果放入myvar
shell语法中有一个特殊部分,允许您在运行命令之前分配变量值,并且这些变量值仅为该命令设置。看起来是这样的:
x=foo1 y=foo2 command parameter ...
你写台词的方式
size=find $dir1 -type f | wc -l
size
被分配一个值“find”,然后
作为单独的命令执行。@Teddy13:我添加了一些解释。@Teddy13:我添加了一些解释。