小编mkl*_*nt0的帖子

检索脚本的父目录

我正在使用卸载程序脚本删除安装脚本的父文件夹.

/usr/local/Myapplication/Uninstaller/uninstall.sh
Run Code Online (Sandbox Code Playgroud)

所以uninstall.sh必须这样做:

rm- rf /usr/local/Myapplication
Run Code Online (Sandbox Code Playgroud)

我可以检索卸载所在的文件夹

SYMLINKS=$(readlink -f "$0")
UNINSTALL_PATH=$(dirname "$SYMLINKS")
Run Code Online (Sandbox Code Playgroud)

但我仍然不确定获得父路径的漂亮方式.我想过使用sed去除这条路径的"Uninstaller"部分,但是有一种优雅的方法来获取Myapplication文件夹的路径来删除它吗?

谢谢

unix bash shell

7
推荐指数
3
解决办法
1万
查看次数

如何在python中的shell脚本中设置退出状态

我想获得在从python调用的shell脚本中设置的退出状态.代码如下

python脚本.

result = os.system("./compile_cmd.sh")
print result
Run Code Online (Sandbox Code Playgroud)

(compile_cmd.sh)

javac @source.txt
#i do some code here to get the no of compilation errors
if [$error1 -e 0 ]
then
echo "\n********** JAVA compilation sucessfull **********"
exit 0
else
echo "\n** JAVA Compilation Error in file ** File not checked in to CVS **"
exit 1
fi
Run Code Online (Sandbox Code Playgroud)

我正在运行此代码.但无论我返回什么退出状态,我得到的结果var为0(我认为它返回shell脚本是否成功运行)我知道如何获取我在shell脚本中设置的退出状态python脚本??

python unix shell

7
推荐指数
2
解决办法
9996
查看次数

如何在unix脚本中'ls'另一个目录?

我的代码

echo $ls | /var/lib/judgem/records/
Run Code Online (Sandbox Code Playgroud)

我正在尝试让脚本向我显示文件夹"记录"中的所有文件

我怎么做?

unix shell

7
推荐指数
2
解决办法
2万
查看次数

如何删除基于列值的重复行?

鉴于下表

 123456.451 entered-auto_attendant
 123456.451 duration:76 real:76
 139651.526 entered-auto_attendant
 139651.526 duration:62 real:62`
 139382.537 entered-auto_attendant 
Run Code Online (Sandbox Code Playgroud)

使用基于Linux的bash shell脚本,我想根据第1列的值(具有长号的那个)删除所有行.考虑到这个数字是一个可变数字

我试过了

awk '{a[$3]++}!(a[$3]-1)' file

sort -u | uniq
Run Code Online (Sandbox Code Playgroud)

但是我没有得到类似这样的结果,在第一列的所有值之间进行比较,删除所有重复项并显示它

 123456.451 entered-auto_attendant
 139651.526 entered-auto_attendant
 139382.537 entered-auto_attendant 
Run Code Online (Sandbox Code Playgroud)

linux bash awk delete-row

7
推荐指数
2
解决办法
9731
查看次数

jq以不同的方式对KEY和VALUES进行排序 - 如何以相同的顺序枚举它们?

我使用curl命令以JSON格式获得REST输出,如下所示

使用以下方法获取KEY名称:

curl http://test.te:8080/testApp/app/version | jq '.version' | jq '. | keys'
Run Code Online (Sandbox Code Playgroud)

OUTPUT:

"Archiver-Version",
"Build-Id",
"Build-Jdk",
"Build-Number",
"Build-Tag",
"Built-By"
Run Code Online (Sandbox Code Playgroud)

单独使用VALUES:

curl http://test.te.com:8080/testApp/app/version | jq '.version' | jq '.[]'
Run Code Online (Sandbox Code Playgroud)

OUTPUT(注意值的顺序与键名的顺序不对应;例如,第一个值"user@test.com",是键的值"Built-By",而不是如我所料,第一个键,"Archiver-Version"):

"user@test.com"
"1634d38"
"sandbox"
"02-03-2014-13:41"
"testApp"
Run Code Online (Sandbox Code Playgroud)

我试图将KEYS和VALUES分配给单独的数组,以便我可以迭代它们并以表格格式显示它们.

但是这两个命令以不同的方式排序,我无法直接分配值和键.

有没有改变KEYS和VALUES的排序,以便两者相同?

unix shell json enumeration jq

7
推荐指数
3
解决办法
7451
查看次数

Array.Find和IndexOf用于完全相同对象的多个元素

我无法获得完全相同对象的多个元素的当前元素的索引:

$b = "A","D","B","D","C","E","D","F"
$b | ? { $_ -contains "D" }
Run Code Online (Sandbox Code Playgroud)

替代版本:

$b = "A","D","B","D","C","E","D","F"
[Array]::FindAll($b, [Predicate[String]]{ $args[0] -contains "D" })
Run Code Online (Sandbox Code Playgroud)

这将返回:D D D.

但是这段代码:

$b | % { $b.IndexOf("D") }
Run Code Online (Sandbox Code Playgroud)

替代版本:

[Array]::FindAll($b, [Predicate[String]]{ $args[0] -contains "D" }) | % { $b.IndexOf($_) }
Run Code Online (Sandbox Code Playgroud)

返回:

1 1 1

所以它指向第一个元素的索引.如何获取其他元素的索引?

arrays indexing powershell

7
推荐指数
2
解决办法
2万
查看次数

找出世界卫生组织对Powershell的文件进行了最后一次更改?

我为所有用户保存文件的共享网络位置.所有用户都可以完全访问此位置.

是否可以通过Powershell或任何其他方式找出WHO对文件或文件夹的最后更改?

从Powershell获取所有这些日期和所有者信息是没有问题的,但看起来没有办法找出世卫组织做出的最后修改.

有什么想法吗?

windows powershell acl

7
推荐指数
1
解决办法
7638
查看次数

如何让命令行Perl接受shell变量?

我可以做数学

perl -e 'print 5253413/39151' -l
Run Code Online (Sandbox Code Playgroud)

但是我不太了解如何利用Perl使用我自己的预定义bash变量进行数学运算的能力.我试过了

var1=$(some wc command that yields a number); var1=$(some wc that yields another number)
perl -e 'print var1/var2' -l
Run Code Online (Sandbox Code Playgroud)

但它不起作用

bash perl

7
推荐指数
2
解决办法
1246
查看次数

这些批处理代码是什么?

我在SuperUser上遇到了以下批处理代码,其目的是以编程方式替换文件夹的图标.

CD "%userprofile%\desktop"
MKDIR "TEST FOLDER"
ATTRIB +s "TEST FOLDER"
CD "TEST FOLDER"
COPY /Y "%userprofile%\desktop\image.ico" "./image.ico"
ECHO [.ShellClassInfo] >> desktop.txt
ECHO ConfirmFileOp=0 >> desktop.txt
ECHO NoSharing=1 >> desktop.txt
ECHO IconFile=image.ico >> desktop.txt
ECHO IconIndex=0 >> desktop.txt
ECHO InfoTip= >> desktop.txt
CHCP 1252 >NUL
CMD.EXE /D /A /C (SET/P=ÿþ)<NUL > desktop.ini 2>NUL
CMD.EXE /D /U /C TYPE desktop.txt >> desktop.ini
DEL /F /Q desktop.txt
ATTRIB +S +H desktop.ini image.ico
Run Code Online (Sandbox Code Playgroud)

我很容易得到脚本的其余部分,但我无法理解这三行:

CHCP 1252 >NUL
CMD.EXE /D /A /C (SET/P=ÿþ)<NUL > desktop.ini …
Run Code Online (Sandbox Code Playgroud)

windows shell command-line cmd batch-file

7
推荐指数
1
解决办法
854
查看次数

将与模式匹配的行从文件夹中的所有文本文件提取到单个输出文件

我试图在文件夹中的所有文件中提取以"%%"开头的每一行,然后将这些行复制到单独的文本文件中.目前在PowerShell代码中使用此代码,但我没有得到任何结果.

$files = Get-ChildItem "folder" -Filter *.txt
foreach ($file in $files)
{
if ($_ -like "*%%*")
{
Set-Content "Output.txt" 
}  
}
Run Code Online (Sandbox Code Playgroud)

powershell foreach filtering get-childitem select-string

7
推荐指数
2
解决办法
3万
查看次数