在我的 linux 系统中清除缓存时在 fish 中使用“;and”时出现问题
Problem using ";and" in fish when clearing cache in my linux system
我正在尝试创建一个函数来清除系统中的缓存 according to this page 因此我需要在函数中添加以下命令:
1。仅清除 PageCache。
sync; echo 1 > /proc/sys/vm/drop_caches
2。清除 dentry 和 inode。
sync; echo 2 > /proc/sys/vm/drop_caches
3。清除 PageCache、dentry 和 inode。
sync; echo 3 > /proc/sys/vm/drop_caches
我想在函数中使用“; and”,将这些命令中的每一个分开,以便在出现错误的情况下不执行下一个命令。
根据 fish documentation,您为此使用 COMMAND1; and COMMAND2
。所以我这样做了:
function clearcache
sudo sh -c 'sync; echo 1 > /proc/sys/vm/drop_caches ;and sync; echo 2 > /proc/sys/vm/drop_caches; and sync; echo 3 > /proc/sys/vm/drop_caches'
结束
但是当我执行它时,出现以下错误或警告:
sh: 1: and: not found
sh: 1: and: not found
然后我尝试从语法中删除 "and" 以查看它是否做了一些不同的事情并检查这是否是问题所在,事实上我让它工作了。
user@debian64 /etc> sudo sh -c 'sync; echo 1 > /proc/sys/vm/drop_caches ; sync; echo 2 > /proc/sys/vm/drop_caches; sync; echo 3 > /proc/sys/vm/drop_caches'
user@debian64 /etc>
我的问题是,如何利用 fish 中的 "and" 功能,或者我做错了什么?谢谢
您对 function clearcache
的定义运行 sh -c
下的命令。 sh 不是鱼;它使用 &&
来实现 fish 调用 ; and
.
的功能
话虽如此,您所做的是多余的。将 3
写入 /proc/sys/vm/drop_caches
与写入 1
和 2
具有相同的效果。
我正在尝试创建一个函数来清除系统中的缓存 according to this page 因此我需要在函数中添加以下命令:
1。仅清除 PageCache。
sync; echo 1 > /proc/sys/vm/drop_caches
2。清除 dentry 和 inode。
sync; echo 2 > /proc/sys/vm/drop_caches
3。清除 PageCache、dentry 和 inode。
sync; echo 3 > /proc/sys/vm/drop_caches
我想在函数中使用“; and”,将这些命令中的每一个分开,以便在出现错误的情况下不执行下一个命令。
根据 fish documentation,您为此使用 COMMAND1; and COMMAND2
。所以我这样做了:
function clearcache
sudo sh -c 'sync; echo 1 > /proc/sys/vm/drop_caches ;and sync; echo 2 > /proc/sys/vm/drop_caches; and sync; echo 3 > /proc/sys/vm/drop_caches'
结束
但是当我执行它时,出现以下错误或警告:
sh: 1: and: not found
sh: 1: and: not found
然后我尝试从语法中删除 "and" 以查看它是否做了一些不同的事情并检查这是否是问题所在,事实上我让它工作了。
user@debian64 /etc> sudo sh -c 'sync; echo 1 > /proc/sys/vm/drop_caches ; sync; echo 2 > /proc/sys/vm/drop_caches; sync; echo 3 > /proc/sys/vm/drop_caches'
user@debian64 /etc>
我的问题是,如何利用 fish 中的 "and" 功能,或者我做错了什么?谢谢
您对 function clearcache
的定义运行 sh -c
下的命令。 sh 不是鱼;它使用 &&
来实现 fish 调用 ; and
.
话虽如此,您所做的是多余的。将 3
写入 /proc/sys/vm/drop_caches
与写入 1
和 2
具有相同的效果。