Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
设置变量Linux_Linux_Shell_Ubuntu - Fatal编程技术网

设置变量Linux

设置变量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

我不熟悉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 $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:我添加了一些解释。