标签: shell

如何使用python打开adb shell并在shell中执行命令

我试图使用subprocess.Popen在python中执行adb shell命令

示例:需要在adb shell中执行'command'.在手动执行时,我打开命令窗口并执行如下操作.

>adb shell
#<command>
Run Code Online (Sandbox Code Playgroud)

在Python中我使用如下,但过程被卡住,并没有提供输出

subprocess.Popen('adb shell <command>)
Run Code Online (Sandbox Code Playgroud)

尝试在命令窗口中手动执行,与python代码相同的结果,卡住并且不给出输出

>adb shell <command>
Run Code Online (Sandbox Code Playgroud)

我试图在后台执行二进制文件(使用二进制文件名后跟&).

python shell android adb

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

当我在xcode中构建应用程序时,出现错误:/ bin / sh:错误的解释器:不允许进行操作

错误信息:

/ Users / baymac / Library / Developer / Xcode / DerivedData / Accelerometerometer_Nodes-ccicmwcpsbuvnnfllupzhsbpxwrr / Build / Intermediates / Accelerometer Nodes.build/Debug-iphoneos/Accelerometer Nodes.build/Script-2C82A787FAD96988s/mac/UserLab/Bay/MAC: / ios project / DeviceToPhone / Pods / Target支持文件/Pods/Pods-frameworks.sh:/ bin / sh:错误的解释器:不允许的操作命令/ bin / sh失败,退出代码为126

我尝试过pods install或chmod,它们没有用,如果有人可以帮助我,那就太好了!

iphone bash shell xcode ios

2
推荐指数
4
解决办法
2229
查看次数

Python:子进程调用无法识别*通配符?

我想删除文件中的所有*.ts.os.remove没用.

这并没有扩大 *

>>> args = ['rm', '*.ts']
>>> p = subprocess.call(args)
rm: *.ts No such file or directory
Run Code Online (Sandbox Code Playgroud)

python linux shell subprocess

2
推荐指数
1
解决办法
757
查看次数

带OR逻辑的Grep命令

我有一个目录,其中有许多文件,其名称如work1,work2,work3,work4 ... workn(其中n是任意数字).我只想列出work那些只有1,2,3,4或5之后作为前缀的文件.

例如:它应该列出来work1 work2 work3 work4 work5.所以我的逻辑是ls -al | grep work,但它会列出work6,work7等过.怎么办?

bash shell grep sh

2
推荐指数
1
解决办法
93
查看次数

xcodebuild存档失败,xcode存档成功

我正在尝试使用Shell脚本和Xcode的命令行工具自动将提交过程提交到iTunesConnect。到目前为止,我已经成功实现了流程栏中的每个步骤:存档。

脚本中的代码:

echo "Attempting to build target: ${TARGET_PRODUCT}"
cd $ENGINE_PATH
# Clean
/usr/bin/xcodebuild clean -project projName.xcodeproj -target "${TARGET_PRODUCT}" -configuration Release
# Build and Archive
/usr/bin/xcodebuild archive -project projName.xcodeproj -scheme "${TARGET_PRODUCT}" -configuration Release -archivePath "${TARGET_PRODUCT}".xcarchive
Run Code Online (Sandbox Code Playgroud)

到目前为止,archive命令无法成功创建档案。该命令的唯一输出是:** ARCHIVE FAILED **
如果我只是尝试构建而不是存档,则会得到:** BUILD SUCCEEDED **

存档确实会在预期的位置生成文件,并且“显示包内容”会扩展为显示与Xcode内生成的存档相同的目录结构,但有一个例外,Xcode内创建的存档还包含一个名为的文件夹SCMBlueprint

我在其他论坛帖子中看到,归档问题通常是由于代码签名或配置文件问题引起的。但是,在这种情况下,我不认为这是一个问题,因为在构建和归档过程中,所使用的代码签名身份和供应配置文件会在控制台中输出。我的归档失败使用的是成功构建所使用的相同的代码签名身份和配置文件。另外,我使用Xcode生成了一个存档,并在该存档中查找了embedded.mobileprovision文件。我将其与由生成的失败存档进行比较xcodebuild,可以看到它们是相同的。

我在网上其他地方已找到有关导致归档xcodebuild失败的任何建议,但到目前为止,我很困惑!任何帮助深表感谢!

shell xcode archive xcodebuild ios

2
推荐指数
1
解决办法
3688
查看次数

在bash中拆分字符串时错误的数组下标

我正在尝试使用IFS分割字符串,查看许多地方提供的示例.我希望在分割后得到数组的最后一个元素,我正在做以下目标:

    path_to_file="/home/user/path/to/fileName.txt";
    IFS='/' read -ra split_path <<< "$path_to_file";
    file_name="${split_path[-1]}";
Run Code Online (Sandbox Code Playgroud)

它给出了整个字符串,它由数组中单个元素中的空格分隔.当我运行最后一个命令时,我收到错误消息"-bash:split_path:bad array subscript".我做错了什么不给我不同的数组索引中的分隔元素.

linux shell

2
推荐指数
1
解决办法
530
查看次数

Linux批量根据文件名模式将文件复制到目录中

我有一个近500个pdf文件的列表,其文件结构如下:

XXXX-YYYY-MM-DD.pdf
Run Code Online (Sandbox Code Playgroud)

其中XXXX一个变量长度数字代码(1到4位)总是用" - "分隔,例如:

51-2016-08-22.pdf
776-2016-08-22.pdf
3881-2016-08-22.pdf
4-2016-08-22.pdf
2860-2016-08-22.pdf
Run Code Online (Sandbox Code Playgroud)

目标是将每个文件复制到自己的目录中,命名模式之类的目录(即:文件776-2016-08-22.pdf转到目录776).如何使用awk或sed来分隔变量长度字段?

这是我的代码:

for f in *.pdf

    do
        FOLDERNAME=`echo $f| awk (awk or sed missing code here)`
        mkdir /my/dir/structure/$FOLDERNAME
        cp $f /my/dir/structure/$FOLDERNAME/
    done
Run Code Online (Sandbox Code Playgroud)

感谢您的支持.

linux bash shell awk sed

2
推荐指数
1
解决办法
600
查看次数

为什么我的布尔测试在bash中切换?

我有这个bash功能,检查我是否在互联网上.它有助于我需要if internet-connected在bash脚本中进行快速测试的时刻.

由于它在上个月非常有用,我试图复制它的设计,有一个简单的ubuntu测试器,测试操作系统是否是Ubuntu.然后这发生了......

test.sh

internet-connected(){
    wget -q --spider http://google.com
    if [ $? -eq 1 ]
    then
        echo 'internet is connected'
        return 1
    else
        echo 'internet is not connected'
        return 0
    fi
}

echo "testing internet-connected"

if internet-connected
then
    echo 'connected'
else
    echo 'not connected'
fi

check-for-ubuntu(){
    tester=$(lsb_release -i | grep -e "Ubuntu" -c)
    if [ $tester -eq 1 ]
    then
        echo 'ubuntu detected'
        return 1
    else
        echo 'ubuntu not detected'
        return 0
    fi
}

echo ""
echo "testing …
Run Code Online (Sandbox Code Playgroud)

linux bash shell ubuntu boolean-logic

2
推荐指数
1
解决办法
77
查看次数

在bash中获取uniqe文件的文件路径

我有以下文件夹结构:

/a/b/c/d/e.txt
/a/b/c/e.txt
/a/b/m.txt
Run Code Online (Sandbox Code Playgroud)

我想要输出

/a/b/c/d/e.txt
/a/b/m.txt
Run Code Online (Sandbox Code Playgroud)

e.txt的任何路径都可以.到目前为止,我能够过滤掉唯一的文件,但是我正在失去完整路径的价值.

find . -name '*.txt' |  awk -F "/" '{print $NF}' | uniq
Run Code Online (Sandbox Code Playgroud)

输出是

e.txt
f.txt
Run Code Online (Sandbox Code Playgroud)

有没有办法使用awk,sed或任何其他命令打印上述场景中的完整路径?

bash shell awk

2
推荐指数
1
解决办法
28
查看次数

Bash脚本:打印字符串之间有空格的列

我遇到了这个问题.当我运行ls -l命令.我得到了这个结果(为了简单起见,我故意在第5节之后省略了列)

-rw-R - R--.1 leslie users 8月26日00:14
-rw-r - r--.1 sherri root Aug 26 00:14
-rw-r - r--.1 marie domain users 8月26日00:14

我想打印集团所有权栏目.通过几种方式我可以打印第4列,这是组所有权列.问题是一些组名称中有空格.例如: - "域用户".ls -l | awk'{print $ 4}'正在打印第4列,如下所示

用户

我想要的输出是

用户

域用户

请帮忙.我很多天都被困在这里.我真的需要一些智能机制,可以检测到域用户或其他具有空间名称的组是属于组所有者类别的组名.我的群组来自Active Directory.这就是为什么有些人有空间的原因.

bash shell awk sed

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

标签 统计

shell ×10

bash ×6

linux ×4

awk ×3

ios ×2

python ×2

sed ×2

xcode ×2

adb ×1

android ×1

archive ×1

boolean-logic ×1

grep ×1

iphone ×1

sh ×1

subprocess ×1

ubuntu ×1

xcodebuild ×1